一、今天干了什么

继承性:
优点:(1)减少冗余,提高代码复用性;(2)便于功能的拓展;(3)为之后多态性的使用提供了前提

 

格式:

class A   extends B{}

A:子类、派生类、subclass;B:父类、超类、基类、superclass

(1)子类一旦继承了父类之后,子类中就获取了父类中声明的所有属性和方法。特别的,父类中声明为private的属性或方法,子类继承后仍认为获取了父类中的私的结构, 

只是因为封装性的影响,使得子类不能直接调用父类的结构而已;

(2)子类继承父类之后,可以声明自己特有的属性或方法,实现功能的拓展

 

特点:

(1)一个类可以被多个子类继承

(2)一个类只能有一个父类(单继承性)

(3)子类和父类是相对的概念

(4)子类直接继承的父类称为直接父类;间接继承的父类称为:间接父类。

(5)子类继承父类之后,就获取了直接父类和所有间接父类中声明的属性和方法

练习:

Java学习第十六天_多态性

 

Java学习第十六天_父类_02

 

 

 代码如下:

父类ManKind

package pers.yan.exer;


public class ManKind {
    private int sex;
    private int salary;
    
    public ManKind()
    {
        
    }
    
    public ManKind(int sex, int salary)
    {
        this.sex = sex;
        this.salary = salary;
    }
    public void setSalary(int salary)
    {
        this.salary = salary;
    }
    public int getSalary()
    {
        return salary;
    }
    
    public void setSex(int sex)
    {
        this.sex = sex;
    }
    public int getSex()
    {
        return sex;
    }
    
    public void manOrWoman()
    {
        if(sex == 1)
        {
            System.out.println("man");
        }
        
        else if(sex == 0)
        {
            System.out.println("woman");
        }
        
    }
    public void employeed()
    {
        String ifJob = (salary == 0)? "no job" : "job";
        System.out.println(ifJob);
    }
}

子类Kid:

package pers.yan.exer;

public class Kid extends ManKind{
    private int yearsOld;
    
    public Kid()
    {
        
    }
    
    public Kid(int yearsOld)
    {
        this.yearsOld = yearsOld;
    }
    
    public void printAge()
    {
        System.out.println("我今年 " + yearsOld +" 岁了");
    }
    public void setOld(int old)
    {
        yearsOld = old;
    }
    public int getOld()
    {
        return yearsOld;
    }
    
}

俭测继承的类KidTest:

package pers.yan.exer;

public class KidTest {
    public static void main(String[] args)
    {
        Kid someKid =  new Kid(12);
        
        someKid.printAge();
        
        someKid.setSalary(5000);
        someKid.setSex(1);
        
        someKid.employeed();
        someKid.manOrWoman();
    }
}

运行截图:

Java学习第十六天_父类_03

 

 二、今天碰到的问题:

写代码时,有几点需要格外注意:

(1)不能忘记get和set方法的设置;

(2)一旦自己设计了构造器,就一定要自己再单独额外加上一个空参构造器~