华恩JAVA班第23天

xiaoxiao2021-02-28  107

华恩JAVA班第23天

 

继承知识点汇总:

继承的概述: 1.提高了代码复用性,简化了代码 2.让类与类之间产生了继承关系,才有了后面的多态性的存在 注意:千万不要为了获取其他类的功能简化代码,而建立继承关系 必须要类与类之间存在继承关系,继承关系:is a class Person{  String name;  int age; }

class Student extends Person{  void study(){   System.out.println("学习");  } }

class Teacher extends{  void teath(){   System.out.println("教书");  } }

public class Test{  public static void main(String[] args){  } }

 

继承的概述: 子类拥有父类的成员,子类不能拥有父类中被private修饰后的成员

java多层继承 在多层继承中最下层的子类拥有整个继承体系的成员, 最上层的父类里面定义所有子类的共性描述

java中不支持多继承。因为多继承存在安全隐患,当多个父类定义了 相同的成员,子类对象不确定运行那一个。 但Java保留了这种机制,并用了另一种方式来体现, 多实现

class A{  String name;  void show(){} } class B{  int age;  void show(){} } class C extends A,B{

}

public class Test1{  public static void main(String[] args){   C c = new C();   c.show();  } }

 

子父类成员特点 成员: 1.成员变量 2.函数 3.构造函数

变量: this 代表当前对象的引用 this.变量 首先在本类中找所需要的这个变量, 如果没有找到再去父类中找。 super 用于访问当前对象的父类成员,super.变量 直接在父类中找所需变量

class Person{  String name = "李四"; }

class Student extends Person{  String name = "张三";  void show(){   System.out.println(this.name); //输出张三   System.out.println(super.name); //输出李四  } }

public class Test2{  public static void main(String[] args){   Student stu = newStudent();   stu.show();  } }

 

 

当子类中出现和父类中一样的函数时,当子类对象调用该函数, 运行的是子类中的函数,这种情况就是函数的另一种特性:重写(覆盖)

class Animal{  String type;  public void run(){   System.out.println("跑步中");  } }

class Cat extends Animal{

}

class Dog extends Animal{  public void run(){   String type = "大黄狗";   System.out.println(type+"哼着歌跑步中");  } }

public class Test4{  public static void main(String[] args){   Cat cat = new Cat();   cat.run();   Dog dog = new Dog();   dog.run();  } }

 

 

有了子父类之后构造函数的特点: 在对子类对象进行初始化的时候, 父类的构造方法也会运行,那是因为子类的构造函数默认第一行 有一条隐式的语句super();

子类每个构造方法第一行都有一个隐式的 super();

class Fu{  String name;  Fu(){   System.out.println("父类构造方法");  }  Fu(String n){   this.name = n;   System.out.println("父类有参构造方法");  } }

class Zi extends Fu{  Zi(){   System.out.println("子类构造方法");  }  Zi(String n){   super("小红");   this.name = n;   System.out.println(n+"子类有参构造方法");  } }

public class Test6{  public static void main(String[] args){   Zi z = new Zi();   Zi z1 = new Zi("小李");  } }

 

class Student{  String name;  int age;  String degree;

 Student(String name,int age,Stringdegree){   this.name = name;   this.age = age;   this.degree = degree;  } }

class Undergraduate extends Student{  String specialty;  Undergraduate(String name,int age,Stringdegree,String specialty){   super(name,age,degree);   this.specialty =specialty;  }  void show(){   System.out.println(name+"\n"+age+"\n"+degree+"\n"+specialty);  } } class Graduate extends Student{  String direction;  Graduate(String name,int age,String degree,Stringdirection){   super(name,age,degree);   this.direction =direction;  }  void show(){   System.out.println("\n"+name+"\n"+age+"\n"+degree+"\n"+direction);  } }

public class Test7{  public static void main(String[] args){   Undergraduate one = newUndergraduate("ziuginzeon",21,"本科","计算机科学与技术");   one.show();   Graduate two = newGraduate("ziuginzeon",21,"本科","JAVA");   two.show();  } }

 

转载请注明原文地址: https://www.6miu.com/read-74684.html

最新回复(0)