Java 的小白学习笔记九(面向对象-继承)

继承

继承特性

1. 子类拥有父类非private的属性,方法

2. 子类可以拥有自己的属性和方法

3. 子类可以用自己的方式实现父类的方法

4. 单继承,可以多重继承

继承关键字

extends

//父类

class Animal2{

    private String name;

    private int age;

    public Animal2 (String n,int a) {

        this.name = n;

        this.age = a;

    }

    public void hello() {

        System.out.println("你好,我是 "+name);

    }

}

//子类

class Dog2 extends Animal2{ //继承使用extends关键字

    public Dog2(String n,int a){

        super(n,a);

    }

}

implements

implements关键字可以变相使Java具有多继承的特性,使用范围为类继承接口的情况,一个类可以同时继承多个接口

public interface A {

    public void eat();

}

public interface B {   

    public void show();

}

public class C implements A,B {

    public void eat(){ }

    public void show(){}

}

super与this

super关键字用来实现对父类成员的访问,引用当前对象的父类,this关键字指向自己的引用

class Animal {

    void eat() {

        System.out.println("animal : eat");

  }

}

class Dog extends Animal { 

    void eat() {   

        System.out.println("dog : eat");

  }

    void eatTest() {   

        this.eat();  // this 调用自己的方法            super.eat();  // super 调用父类方法 

    }

}

public class Test { 

    public static void main(String[] args) {

    Animal a = new Animal();

    a.eat();

    Dog d = new Dog();

    d.eatTest();

  }

}

final

用final关键字声明类,该类不能被继承;声明方法,该方法不能被子类重写

若实例变量被声明为final,这个变量就不能被修改。被声明为final类的方法自动被声明为final,但实例变量不是final 

构造器

子类不能继承父类的构造器,如果父类的构造器有参数,必须在子类的构造器中显示的通过super关键字调用父类构造器,并带有适当的参数列表

public class SuperClass {

private int age;

public SuperClass(int age){

this.age = age;

System.out.println("SuperClass:"+this.age);

}

}

public class SubClass extends SuperClass {

private int age;

public SubClass(int age){

super(5);

this.age = age;

System.out.println("sbuclass:"+this.age);

}

public static void main(String[] args) {

SubClass s = new SubClass(2);

}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,805评论 18 399
  • 今天的主要内容是构造方法,static用法,继承,多态,抽象类,接口。由于从今天开始JAVA的学习基本上都是面向对...
    没说再见阅读 465评论 0 0
  • 今天被人推荐了一个搜素引擎,打开一看我就吓到了,这... 简直是啥都有嘛...在这个网站中集成了各种丧心病狂的单一...
    粉蓝阅读 446评论 0 0
  • 我挤压所有时间 让自己净场。 你 不知何往。 我看遍所有云朵 让自己安详。 你 依然远方。 时间的拒绝 生硬钝涩。...
    馒头小米粥阅读 137评论 0 0