Java基础笔记25——继承

Posted `青红造了个白`

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java基础笔记25——继承相关的知识,希望对你有一定的参考价值。

继承(泛化):

 

语法:

<修饰符> class 子类 (派生类) extends 父类 (超类、基类)
{

}


特点:

1.复用父类的所有非private修饰的属性与方法

2.扩充自自有的属性与方法


注意:

1.只允许单继承,一个子类只可以有一个父类,但是一个父类可以有多个子类

2.可以变相的“多继承”,例如:

public class Cat extends Animal{}
public class Tiger extends Cat{}
继承 继承
Tiger------->Cat------->Amimal

3.Object是所有类的超级父类,而且是java语言中唯一一个没有父类的超级类


子类实例化的过程:

先实例化父类,再实例化子类

 

super():

条件:基于继承关系

作用:调用父类的构造器


注意:

1.只能出现在子类的构造器中,且必须是第一行

2.super()中的参数,决定了调用父类哪个构造器

3.如果子类构造器没有出现super,那么编译器会默认加上super(),
即调用父类的空构造器;如果父类没有空构造器,编译器提示错误



this():
条件:1.基于当前类
作用:调用类自己的构造器

super:表示父类的引用

this:表示类自身的引用

 

例子:

 

Animal.java:

package com.lqh.chapter01;

public class Animal{
    //属性(成员变量)
    String color;
    String brand;
    int age;
    
    public Animal() {
        System.out.println("父类实例化---Animal");
    }
    
    public Animal(String color,String brand,int age) {
        this.color = color;
        this.brand = brand;
        this.age = age;
        System.out.println("父类实例化---Animal");
    }
    
    //行为(成员方法)
    public void eat() {
        System.out.println("吃东西!");
    }
    
    public void sleep() {
        System.out.println("睡觉!");
    }
}

 

Bird.java:

package com.lqh.chapter01;

public class Bird extends Animal{
    //属性(成员变量)
    String live;
    public Bird() {
        super();//如果子类不写super,编译器会默认加上
        System.out.println("子类实例化--Bird");
    }
    public void fly() {
        System.out.println("飞!");
    }
}

 

Cat.java:

package com.lqh.chapter01;

public class Cat extends Animal{
    //属性(成员变量)
    String area;
    public Cat(String brand, String color, int age) {
        super(brand, color,age);//调用父类的有参构造函数
    }
    public void swimp(){
        System.out.println("游泳!");
    }
}

 

Test.java:

package com.lqh.chapter01;

public class Test {
    public static void main(String[] args) {
        Bird parrot = new Bird();
        //访问父类的属性
        parrot.brand = "鹦鹉";
        parrot.age = 3;
        parrot.color = "yello";
        //访问子类的属性
        parrot.live = "陆地";
        //访问父类的方法
        parrot.eat();
        //访问子类自有的方法
        parrot.fly();
        
        Cat lihua = new Cat("狸花猫","white and black",2);
        //访问子类的属性
        lihua.area = "中国大陆";
        //访问父类的方法
        lihua.sleep();
        //访问子类自有的方法
        lihua.swimp();
    }
}

 

输出结果为:

父类实例化---Animal
子类实例化--Bird
吃东西!
飞!
父类实例化---Animal
睡觉!
游泳!

以上是关于Java基础笔记25——继承的主要内容,如果未能解决你的问题,请参考以下文章

代码笔记Java基础:Java的方法和类

知了堂学习笔记java基础知识之继承

JAVA基础笔记(很实用)继承-多态-抽象类-接口-异常-集合-IO-线程-Socket

Java基础学习笔记七 Java基础语法之继承和抽象类

阿花宝宝 Java基础笔记 之 继承

Java基础——面对对象-继承