大白糖奶兔的Blog
大白糖奶兔的Blog
Java学习-Day08类的继承

概念

  • 根据已有类来定义新类,新类拥有已有类的所有功能
  • Java只支持类的单继承,每个子类只能有一个直接超类(基类)
  • 超类是所有子类的公共属性及方法的集合,子类则是超类的特殊化
  • 继承机制可以提高程序的抽象程度,提高代码的可重用性

超类和子类

  • 子类对象与超类对象存在“是一个.....”或“是一种....”的关系
  • 子类对象

子类对象

从外部来看,它应该包括

  • 与超类相同的接口
  • 可以具有更多的方法和数据成员

其内包含着超类的所有变量和方法

继承的语法

[ClassModifier] class ClassName extends SuperClassName
{
    //类体
}

举例

package 第三章类的重用;
//People.java
public class People {
    public static class Person{
        public String name;
        public String getName(){
            return name;
        }
        //重构toString方法
        public String toString(){
            return ("Name is #" + name);
        }
    }

    public static class Employee extends Person{
        public int employeeNumber;
        public int getEmployeeNumber() {
            return employeeNumber;
        }
        //重构toString方法
        public String toString(){
            return ("Name is #" + name + " EmployeeNumber is #" +
                    new java.text.DecimalFormat("0000000000").format(employeeNumber));
        }
    }

    public static class Manager extends Employee{
        public String responsibilities;
        public String getResponsibilities() {
            return responsibilities;
        }
        //重构toString方法
        public String toString(){
            return ("Name is #" + name + " EmployeeNumber is #" +
                    new java.text.DecimalFormat("0000000000").format(employeeNumber)+
                    " Responsibilities is #" + responsibilities);
        }
    }

}
package 第三章类的重用;

public class 类的继承 {
    public static void main(String[] args) {
        People.Employee admin = new People.Employee();
        admin.name = "大白糖奶兔员工";
        admin.employeeNumber = 10086;
        System.out.println(admin);
        //Manager对象创建
        People.Manager user = new People.Manager();
        user.name = "大白糖奶兔经理!";
        user.employeeNumber = 10010;
        user.responsibilities = "霸道总裁";
        System.out.println(user);
    }
}

子类不能直接访问从超类中继承的私有属性及方法,但可使用公有(及保护)方法进行访问

package 第三章类的重用;

public class 继承的权限说明 {
    public class B{
        public int a = 10;
        private int b = 20;
        protected int c = 30;
        public int getB() {
            return b;
        }
    }
    
    public class A extends B{
        public int d = 100;
        System.out.println(a);//允许
        System.out.println(b);//不允许
        System.out.println(getB());//允许
        System.out.println(c);//允许
    }
}

发表评论

textsms
account_circle
email

大白糖奶兔的Blog

Java学习-Day08类的继承
概念 根据已有类来定义新类,新类拥有已有类的所有功能Java只支持类的单继承,每个子类只能有一个直接超类(基类) 超类是所有子类的公共属性及方法的集合,子类则是超类的特殊化继承…
扫描二维码继续阅读
2020-03-06
Title - Artist
0:00