java面向对象——继承

发布于:2023-01-31 ⋅ 阅读:(502) ⋅ 点赞:(0)

目录

一、 概念

二、作用

三、 继承的特性

四、 super和this关键字


一、 概念

        继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承使用extends关键字。格式为:

                访问权限修饰符 class 子类 extends 父类{

                                        ... //类体

                        }

二、作用

        通过继承可以快速创建新的类,避免了代码重复、代码量大且臃肿,实现代码的重用,提高程序的可维护性,节省大量创建新类的时间,提高开发效率和开发质量。

三、 继承的特性

        1)子类继承了所有的属性和方法,非私有的属性和方法可以在子类直接访问,但是私有属性和方法不能再子类直接访问,要通过公共的方法去访问。

public void showInfo(){    
        //子类无法直接获取父类的属性,需要通过父类提供的get()和set()方法去修改和获取            System.out.println("姓名:"+this.getName()); 
}

        2)子类必须调用父类的构造器,完成父类的初始化。

public Cat() {    
        super();    
        System.out.println("我是子类的无参构造器"); 
}
public Pet() {    
        System.out.println("我是父类的无参构造器"); 
}
public class Test {    
        public static void main(String[] args) {       
        //创建子类对象        
        Cat cat = new Cat();   
     }
}

        3)当创建子类对象时,不管使用子类的哪个构造器,默认情况下,总会去调用父类的无参构造器。如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化工作。否则编译不会通过。

public Cat() {    
        super();// 调用父类Pet类里的无参构造方法,可以不写,不写系统会自动调用父类无参构造方法 
}

        4)如果希望指定去调用父类的某个构造器,则显示的调用一下:super(参数列表)

public Cat(String name, int health, int love, String color) {    
        super(name, health, love);//指定父类构造器调用    
        this.color = color; 
}

        5)super在使用时,必须放在构造器第一行。

public Cat() {    

        super();//第一行

}

public Cat(String name, int health, int love, String color) {    

        super(name, health, love);//第一行    

        this.color = color;

        6)super()和this()都只能放在构造器第一行,因此这两个方法不能共存一个构造器。

        7)java所有类都是Object类的子类,Object是所有类的基类。

        8)父类构造器的调用不限于直接父类,将一直往上追溯到Object类(顶级父类)。

        9)子类只能继承一个父类(直接继承),即单继承机制。

        10)不能滥用继承,子类和父类必须满足is-a的关系

四、 super和this关键字

        super:

                1)表示子类对父类对象的引用

                2)super只能出现在子类的方法和构造方法中

                3)super调用构造方法时,只能是第一句

        this:

                1)表示对当前对象的引用

                2)它在构造器内部使用时,表示该构造器正在初始化的对象。

                3)this调用构造方法时,只能是第一句


网站公告

今日签到

点亮在社区的每一天
去签到