Java基础--面向对象编程3(继承)

Posted WhisperHong

tags:

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

1.继承的作用

为了提取两个类中公共的代码,可以使用继承抽取重复性的代码到一个公共类中。

这个公共的类称为父类(super class),继承于父类的类称为子类(sub class)。

2.java继承的特性

[1] 单根性。在java中,一个类只能有一个直接父类。

[2] 传递性。C继承于B,B继承于A,C具有A的特性和行为。

3.类B继承于类A,使用关键字extends,B拥有了A中非私有的属性和方法。

1 public class Person{
2     String name;
3     int age;
4     
5     public void showInfo(){
6         System.out.println("姓名:"+name);
7         System.out.println(",年龄:"+age);
8     }
9 }
1 public class Student extends Person{
2     
3 }
1 public class Test01{
2     public static void main(String[] args){
3         Student s = new Student();
4         s.name = "张三";
5         s.age = 20;
6         s.showInfo();
7     }
8 }

4.Super

super关键字表示父类对象,只是一个关键字,里面没有引用。

[1]super能访问父类构造方法

注意:super调用父类构造方法时,必须写到构造方法有效代码第一句。

[2] super调用父类的非私有属性

super可以访问父类的非私有属性。私有的属性不能用super访问。

当子类定义了一个和父类同名的属性时,在子类中优先访问子类的属性,如果要访问父类属性一定要加super。

[3]访问非私有父类方法

5.父类不能被子类继承的成员

6.继承关系的初始化顺序

7.继承关系内存图

8.方法的重写

当子类从父类继承过来的方法不能满足自身需要时,子类可以根据自身情况进行方法重写(overwrite/override)

方法重写建立在继承的基础上,没有继承,就没有重写!

子类根据自身情况,可以选择部分重写和完全重写。

[1]部分重写

1 public void showInfo(){
2         super.showInfo();
3         System.out.println("我是一只"+this.getStrain());
4     }

[2]完全重写

1 public void showInfo(){
2         System.out.println("--"+super.getName()+"--");
3         System.out.println("健康值:"+super.getHealth());
4         System.out.println("亲密度:"+super.getLove());
5         System.out.println("品种:"+this.getStrain());

 

[3]重写的规则

a.方法名称相同

b.参数列表相同

c.子类的访问权限一定 >= 父类访问权限

d.返回值和父类相同或者是其子类

1 public Pet create(){
2         Pet pet = new Pet();
3         return pet;
4 }
1 public Dog create(){
2         Dog dog = new Dog();
3         return dog;
4 }

 

以上是关于Java基础--面向对象编程3(继承)的主要内容,如果未能解决你的问题,请参考以下文章

Java自用基础编程篇-4.面向对象(中)

Java面向对象基础

Java基础杂烩_继承(Inheritance)

java面向对象

廖雪峰Java2面向对象编程-3继承和多态-1继承

大数据必学Java基础(四十):面向对象三大特性之一继承(Inheritance)