zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    Vue.js 监听属性
    class 属性绑定
    《规划极限编程》阅读笔记03
    原型模式——C++实现
    原型模式——Java实现
    建造者模式——C++实现
    建造者模式——java实现
    抽象工厂模式——C++实现
    抽象工厂模式——java实现
    软件工程 开发模型
  • 原文地址:https://www.cnblogs.com/WhiperHong/p/10753335.html
Copyright © 2011-2022 走看看