• 五(七)、继承性


    面向对象的特征之二:继承

    一、继承性:
      1.减少代码的冗余,提高代码复用
      2.便于拓展功能
      3.为多态性使用提供了前提
     
    二继承性的体现 : class A extends B{}
      A为子类 subclass,B为父类 superclass
      1.一旦子类A继承B以后,子类A 中获取了父类B中声明的结构:所有的 属性、方法 ;
      特别注意:父类的私有结构,子类也继承到了,只是由于封装性的影响使得子类不能直接调用父类结构;
     
      2.子类继承父类以后,还可以声明自己特有的属性 和 方法;实现功能的扩展;
      子类与父类的关系,子类功能丰富;
     
      三、java中继承性的规定:
      1.java中的单继承性;子类只能有一个父类;
      2.一个类可以被多个子类继承;
      3.字父类是相对的,可以多层继承;
      4.子类直接继承的父类,称为直接父类,间接继承的类称为 间接父类
      5.子类继承父类以后,就获取了直接父类和间接父类以及所有间接父类中声明的属性、方法
     
      四、若没有显示声明一个类的父类,则此类继承于java.lang.Object类
      所有的类(除java.lang.Object)都直接或间接继承于java.lang.Object,意味着,所有的java类都具有java.lang.Object声明的功能

    如下例子:Students 继承Person1,那么Students获取了Person1中声明的所有的属性和方法;

     1 public class Day11Inherit20 {
     2 
     3     public static void main(String[] args) {
     4         Persons1 person = new Persons1();
     5         person.age = 1;
     6         person.eat();
     7         Students student = new Students();
     8         student.eat();
     9     }
    10 }
    11 class Persons1{
    12     String name;
    13     int age;
    14     public void eat(){
    15         System.out.println("睡觉");
    16     }
    17     public void sleep() {
    18         System.out.println("睡觉");
    19     }
    20     public String getName() {
    21         return name;
    22     }
    23     public void setName(String name) {
    24         this.name = name;
    25     }
    26     public int getAge() {
    27         return age;
    28     }
    29     public void setAge(int age) {
    30         this.age = age;
    31     }
    32     public Persons1(String name, int age) {
    33         super();
    34         this.name = name;
    35         this.age = age;
    36     }
    37     public Persons1() {
    38         super();
    39     }
    40     
    41 }
    42 
    43 class Students extends Persons1 {
    44     String major;
    45     public String getMajor() {
    46         return major;
    47     }
    48     public void setMajor(String major) {
    49         this.major = major;
    50     }
    51     public Students(String name, int age, String major) {
    52         super();
    53         this.name = name;
    54         this.age = age;
    55         this.major = major;
    56     }
    57     public Students() {
    58         super();
    59     }
    60     
    61     public void study() {
    62         System.out.println("学习");
    63     }
    64 }
  • 相关阅读:
    The Road to Ryu: Hi Ryu
    Python学习札记(三十五) 面向对象编程 Object Oriented Program 6
    Python学习札记(三十四) 面向对象编程 Object Oriented Program 5
    Python学习札记(三十三) 面向对象编程 Object Oriented Program 4
    Python学习札记(三十二) 面向对象编程 Object Oriented Program 3
    Coursera SDN M1.2.1 SDN History: Programmable Networks 2
    Python学习札记(三十一) 面向对象编程 Object Oriented Program 2
    Python学习札记(三十) 面向对象编程 Object Oriented Program 1
    Coursera SDN M1.2.1 SDN History: Programmable Networks 1
    Python学习札记(二十九) 模块2
  • 原文地址:https://www.cnblogs.com/lixiuming521125/p/13305719.html
Copyright © 2020-2023  润新知