面向对象三大特征之继承

我是研究僧i 提交于 2020-02-18 21:37:27

继承 ; A extends B;

就代表A继承了B; B类作为一个父类, A类作为一个子类;

​定义: 子类继承父类的属性和方法;子类可拥有自己独有的属性和方法;

package com.lv.ext;

//生物
public class Organisa {
    
    String name;
    
    public void huozhe(){
        
    }
}

 

package com.lv.ext;

//动物
//Animal extends Organisa 动物类继承生物类
//构造函数不能继承
public class Animal extends Organisa {
    
    //私有的属性
    private int number;
    
    //私有的方法
    private void test(){
        
    }
    
    public Animal(){
        System.out.println("这个是Animal的构造方法");
    }
    
    public Animal(String name){
        this.name=name;
        System.out.println("这个是Animal带参数的构造函数");
    }
    
    public void eat(){
        
    }
    
    public void sleep(){
        
    }
}

 

package com.lv.ext;
//蛇
public class Snake extends Animal {
    
    
    //能不能吧Animal的构造方法继承过来?  不能
    
    public Snake(){
        
    }
    
    
    public void pa(){
        
    }
}

测试类:

 

package com.lv.ext;

public class Test1 {

    public static void main(String[] args) {
        
        Snake snake=new Snake();
        
        //能使用snake.name?
        snake.name="tom";
        
        //这个方法是从的间接父类继承的
        snake.huozhe();
        
        //从父类继承2个方法
        snake.eat();
        snake.sleep();
        
        //并且有自己独有的方法
        snake.pa();
        
        //私有的属性和方法不能被继承
        //snake.number;//父类私有的属性
        //snake.test();//父类私有的方法
        
        //子类继承父类的所有的属性和方法;子类可以有自己独有的属性和方法
    }

}

 

 

 

3种不可继承:

​ 1: 构造方法;

​ 2: private修饰的属性和方法;

​ 3: 父子不在同一个包中,default修饰符的属性和方法;

 

继承时,创建子类对象;

​ 定义: 在具有继承关系的对象创建中,构建子类对象会优先构建父类对象

 

package com.lv.son;

//生物类
public class ShengWu {
    
    //生物的构造函数
    public ShengWu(){
        System.out.println("ShengWu的构造函数");
    }

}

 

 

package com.lv.son;

public class Animal extends ShengWu{

    public Animal(){
        System.out.println("Animal的构造函数");
    }
}
package com.lv.son;

public class Fish extends Animal{

    public  Fish(){
        System.out.println("Fish的构造函数");
    }
}

测试类

package com.lv.son;

public class Test {

    public static void main(String[] args) {
        
        Fish  fish=new Fish();
        
        
    }

}

 

 

访问修饰符

 本类 同包 非同包子类 其他

private √ × × ×

default √ √ × ×

protected √ √ √ ×

public √ √ √ √

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!