• 面向对象三大特征之继承


    继承 ; 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 √ √ √ √

  • 相关阅读:
    巴基斯坦:软件服务外包行业的后来者 (zz)
    对象集合查询
    我的db类库 新版
    得到web.config里配置项的数据库连接字符串
    jdk环境变量配置
    FastReport v3.2.5在BDS2006中的安装方法
    CONFIG.SYS文件的命令与配置
    DOS下内存的配置
    动态注册ODBC数据源的通用方法
    XP下安装装SQL2000企业版本
  • 原文地址:https://www.cnblogs.com/dabu/p/12328113.html
Copyright © 2020-2023  润新知