栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java面向对象2 继承,super关键字,final关键字,static关键字

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java面向对象2 继承,super关键字,final关键字,static关键字

一、继承

特点:

1.继承有一定的层次结构,而且要具备一定的可传递性。

2.子类继承了父类中所有的属性和方法 ,但是父类中似有的属性和构造方法子类无法继承。

私有属性 ,只能属于当前类,其他类无法使用。

构造方法不能被继承,因为构造方法是用来创建当前类的对象的,如果子类能继承,就说明子类也可以创建父类对象,违反第一个特点。

3.子类也可以拥有自动的属性和功能。

4.在Java中只支持单一继承,即一个子类只能有一个父类,但一个父类可以有多个子类。

作用:提高代码的重用性。

关键字extends : 语法:

[访问修饰符] class 子类 extends 父类{}

public class Demo16 {
    public static void main(String[] args) {
     ZI zi=new ZI();
      zi.t2();
父类
class FU{
    private String name ="张珊";
   private  int age=56;

   String hourse="十套别墅";
   String car="五辆奔驰S600";
   String money="9990909009098888888$";
   void ti(){
       System.out.println("这是父类中的ti方法");
   }
}
子类
class ZI extends FU{
   private String name="张四";
    void t2(){
      System.out.println(name+"继承的房子:  "+super.hourse+"继承的车子:    "+super.car+"继承的存款:    "+super.money);
        super.ti();
    }
}

 二、super关键字

1.

在创建有继承关系的子类对象时,一定会先执行父类中的构造方法(默认执行的无参数的构造方 法),然后再执行子类的构造方法。 如果在创建子类对象时,父类中不存在默认的构造方法,则程序编译错误。 如果要想解决以上问题,则可以通过super关键字来明确指明调用父类的哪个构造方法,来创建父 类对象。 2.   super关键字使用场景:         super关键字只能出现在有继承关系的子类中 3.    super关键字的作用:         表示对当前类父类对象的引用。 可以使用super关键字,来显示说明子类中的某个属性或方法是在父类中定义的。 super关键字的用法: 属性:super.属性名 方法:super.方法名(参数列表) 构造方法:只有super以super(参数列表)的形式出现在子类构造方法的第一句代码时,就表示明确了所要使用的父类构造方法。
public class Demo16 {
    public static void main(String[] args) {

 S1 s1=new S1();
        F3 f3=new F3();
        f3.dis(20);

    }
}
class F1{
    public F1(String name){
        System.out.println(name);
        System.out.println("父类中的构造方法");
    }
    public void dis(){
        System.out.println("父类中的普通方法");
    }
}
class S1 extends F1{

    public S1(){
        super("gou");
        System.out.println("子类中的构造方法");
        super.dis();
三、final关键字

final修饰的元素都是最终的,无法修改的

final的用法:

final修饰变量,这个变量等同于常量,常量一旦赋值就无法更改。

final修饰方法中的参数,那么这个参数为最终参数,在方法中无法对最终参数进行修改

fina修饰类,类不能被继承

final修饰的方法,方法不能被冲写。

如果使用时对final修饰的元素座更改会报出编译错误

四、static关键字

1、static可以修饰成员变量、方法,所修饰的元素又被称为类变量、类方法或者静态变量、静态方法,属于类。

2、   没有被static修饰的成员变量、方法称为实例变量或者实例方法,他们属于对象。

3、 static修饰变量或者方法 ,副本只有一个。只会被JVM加载一次。

4、static修饰的变量或方法,在类被加载时就会进行内存空间的分配;而实例变量或方法,只有创建 了对象,它们才会有内存空间。

静态变量

静态变量在使用时可以直接通过类名.属性名的方式调用。也可以通过对象名.属性名调用。

静态变量可以被类中所有的对象共享。

public class Demo3{
 private static String name="张三"; 
private static int age=22;
 private String address; 
public static void main(String[]args){ 
System.out.println(Demo3.name); 
System.out.println(Demo3.age); 
System.out.println("--------------------------------------------------- "); 
Demo3 demo3=new Demo3();
 demo3.address="河北";
 demo3.name="李四"; 
System.out.println(demo3.name);
 System.out.println(demo3.age); 
System.out.println(demo3.address);
 Demo3 demo4=new Demo3(); 
System.out.println(demo4.name); 
System.out.println(demo4.address); 
    }
 }
静态方法

静态方法在使用时,也是通过类名.方法名(参数列表)的形式调用

静态方法的特点:

在静态方法中只能调用静态的属性和方法。

在非静态方法中,可以调用静态方法和属性,也可以调用非静态的属性和方法。

在静态方法中无法使用this关键字和super关键字。

public class Demo4{
static String address="河北";
public static void main(String[]args){ 
System.out.println(address);
t1();
 Demo4.t1();
 }
public static void t1(){ 
System.out.println("静态方法"); 
}
 }
静态代码块

静态代码块位于类的内部,任何方法的外部,语法:static{  }

静态代码块主要是用来给静态的成员变量进行初始化

public class Demo4{
static String address=;
static{ 
address="河北"; 
System.out.println("---------静态代码块---------"); 
}
public static void main(String[]args){ 
System.out.println(address);
t1();
 Demo4.t1();
 }
public static void t1(){ 
System.out.println("静态方法"); 
}
 }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号