java中继承

java中继承

[TOC]

理解

生活中的继承:子女继承了父母的财产或相貌或才华

// java中的继承:一个类不用自己定义属性或方法,就已经具备了另一个类的属性和方法把这种现象称为java中的继承!
继承其他类的类,称为子类或派生类。
被继承的类,称为父类或超类或基类

好处

1、提高代码的重用性
2、提高代码的扩展性和维护性
3、为多态打下了基础

语法

使用extends关键字

class Sub extends Super{
}

使用特点

// 1、子类到底继承了父类的哪些成员?
    所有的属性和方法,只是私有的不能直接访问,而是通过公共的方法去访问
    注意:子类在访问继承来的成员时,也是需要先去遵循访问权限的限定

//2、子类不能继承父类的构造器,但必须调用父类的构造器

//3、不能滥用继承,子类和父类之间必须满足 is-a的关系

//4、子类可以直接继承几个父类?
答:一个 java中支持单继承!

//5、子类的继承不限于直接父类

//6、java中所有的类都直接或间接继承了Object类,也就是Object类为所有类的祖先类

子类调用父类构造器的特点

// 1、子类必须调用父类的构造器

//2、子类如果没有显式的调用父类的构造器,则默认调用父类的无参构造器
   父类中如果没有无参构造器,则子类中必须显式的调用父类的有参构造器,通过super关键字去调用,语法为 super(实参列表);

//3、构造器的调用,不限于直接父类

代码

定义Book类,里面有书名和价格属性,封装价格,提供有参构造为属性初始化,并提供getInfo返回属性信息
定义Novel类继承Book,提供作者属性,提供有参构造,重写getInfo方法

class Novel extends Book{//Novel类继承Book

    private String author;
    public void setAuthor(String author){
        this.author=author;
    }
    public String getAuthor(){
        return author;
    }
    public Book(String name,double price,String author){
        super(name,price);//提供有参构造
        this.author=author;
        
    }
    public String getInfo(){

        return super.getInfo()+"\t"+author;//重写getInfo方法
    }
    
    
}

class Book{

    private String name;
    private double price;
    public void setPrice(double price){//封装价格
        this.price = price;
    }
    public double getPrice(){//封装价格
        return price;
    }
    public Book(String name,double price){//提供有参构造为属性初始化
        this.name=name;
        this.price=price
    }
    public String getInfo(){
        return name+"\t"+price;
    }
    

}

你可能感兴趣的:(java中继承)