Java学习第十六天
一、今天干了什么
继承性:
优点:(1)减少冗余,提高代码复用性;(2)便于功能的拓展;(3)为之后多态性的使用提供了前提
格式:
class A extends B{}
A:子类、派生类、subclass;B:父类、超类、基类、superclass
(1)子类一旦继承了父类之后,子类中就获取了父类中声明的所有属性和方法。特别的,父类中声明为private的属性或方法,子类继承后仍认为获取了父类中的私的结构,
只是因为封装性的影响,使得子类不能直接调用父类的结构而已;
(2)子类继承父类之后,可以声明自己特有的属性或方法,实现功能的拓展
特点:
(1)一个类可以被多个子类继承
(2)一个类只能有一个父类(单继承性)
(3)子类和父类是相对的概念
(4)子类直接继承的父类称为直接父类;间接继承的父类称为:间接父类。
(5)子类继承父类之后,就获取了直接父类和所有间接父类中声明的属性和方法
练习:
代码如下:
父类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(); } }
运行截图:
二、今天碰到的问题:
写代码时,有几点需要格外注意:
(1)不能忘记get和set方法的设置;
(2)一旦自己设计了构造器,就一定要自己再单独额外加上一个空参构造器~