封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为
继承:Java中提供一个关键字extends,用这个关键字,我们可以让一个类和另一个类建立起继承 关系
例如:public class Student extends Person
Student 成为子类(派生类),Person成为父类(基类或超类)
使用继承的好处:①可以把多个子类中重复的代码抽取到父类中了,提高代码的复用性
②子类可以在父类的基础上,增加其他的功能,使子类更强大
什么时候用继承:当类与类之间,存在相同(共性)的内容,并满足子类是父类中的一种,就可 以考虑使用继承来优化代码
例如:Student中有姓名,年龄;Teacher中也有姓名,年龄;就可以把姓名年龄放到Person中, 因为学生、老师都是人,所以可以把Person作为父类,Student Teacher作为子类,当 Student Teacher想用时直接继承父类中的就可以了
继承的特点:Java只支持单继承,不支持多继承,但支持多层继承
单继承:一个子类只能继承一个父类
不支持多继承:子类不能同时继承多个父类
多层继承:子类A继承父类B,父类B可以继承父类C;B是A的直接父类,C是A的间 接父类。
每一个类都直接或间接继承于Object
练习:4种动物分别有以下行为
布偶猫:吃饭、喝水、抓老鼠
狸花猫:吃饭、喝水、抓老鼠
哈士奇:吃饭、喝水、看家、拆家
泰迪:吃饭、喝水、看家、蹭一蹭
画图:从下往上画:下面子类,上面父类
核心:1.共性内容抽取; 2.子类是父类中的一种
//权限修饰符是public,如果改成private:子类就无法访问了 //注意:子类只能访问父类中非私有的成员
Animal:
package a04extendsdemo1;
public class Animal {
//权限修饰符是public,如果改成private:子类就无法访问了
//注意:子类只能访问父类中非私有的成员
public void eat(){
System.out.println("吃东西");
}
public void drink(){
System.out.println("喝水");
}
}
Cat:
package a04extendsdemo1;
public class Cat extends Animal{
public void catchMouse(){
System.out.println("抓老鼠");
}
}
Dog:
package a04extendsdemo1;
public class Dog extends Animal{
public void lookHome(){
System.out.println("看家");
}
}
Ragdoll:
package a04extendsdemo1;
public class Ragdoll extends Cat {
}
LiHuaMao:
package a04extendsdemo1;
public class LiHuaMao extends Cat {
}
Husky:
package a04extendsdemo1;
public class Husky extends Dog {
public void breakHome() {
System.out.println("哈士奇拆家");
}
}
Teddy:
package a04extendsdemo1;
public class Teddy extends Dog {
public void touch() {
System.out.println("泰迪蹭一蹭");
}
}
Test:
package a04extendsdemo1;
public class Test {
public static void main(String[] args) {
//创建对象并调用方法
//1.创建布偶猫对象
Ragdoll rd=new Ragdoll();
rd.eat();
rd.drink();
rd.catchMouse();
System.out.println("-------------------");
//2.创建哈士奇的对象
Husky h=new Husky();
h.eat();
h.drink();
h.lookHome();
h.breakHome();
}
}
运行结果:
标签:Java,继承,子类,class,extends,父类,public From: https://blog.csdn.net/TNTxd/article/details/136849500