1.关键字:extends
作用:可以让一个类和另一个类建立起继承的关系;
范例:public class 类名 extends 类名{}
第一个类名:自己的文件名 (也称为子类) 等二个类名:你要继承的父类名字(也称为父类)
2.继承特点:
Java支持单继承,不支持多继承, 但支持多层继承
单继承:一个子类只能继承一个父类
不支持多继承:子类不能同时继承多个父类
支持多层继承:子类A 继承 父类B,父类B 可以继承 父类C(就如同现实中的祖孙三代这样的关系)
父类C 对于 子类A 属于间接父类,父类B 对于 子类A 属于直接父类
3.继承中子类无法继承父类的构造方法,子类要向父类传参需要用到super关键字
//父类Pet
public class Pet{
public String name;
public String sex;
//构造方法
public Pet(String name){
this.name = name;
}
public void eat(){
System.out.println(name+"宠物吃东西");
}
}
//子类 Dog
public class Dog extends Pet{
public String hair;
public Dog(String name){
super(name);//调用父类构造器 并传参给父类
}
public void look(){
System.out.println("狗看家");
}
//子类 Cacuts
public class Cactus extends Pet{
public String stub;
public Cactus(String name){
super(name);
}
public void flower(){
System.out.println("开花结果");
}
//测试类
public class Test{
public static void main(String [] args){
Dog d = new Dog("小白");
d.sex = "公狗";
d.hair = "黑毛";
Cactus ca = new Cactus("大黄");
ca.sex = "无";
ca.stub = "扎人的刺";
d.eat();
d.look();
ca.eat();
ca.flower();
}
}
/**测试结果:
小白宠物吃东西
狗看家
大黄宠物吃东西
开花结果
*/
4.关键字--abstract (抽象) : 抽象父类的作用是约束子类必须完成这个方法,抽象类无法实例化(即 不能对其进行new创建对象)
多态--重写
子类中和父类具有相同的方法时 ,子类重写父类中的方法,优先执行子类中的方法
方法名一样,参数一样,返回类型一样,方法体不一样。
父类中的方法原型在子类中完成
5.多态--向上转型 和 向下转型
向上转型:
Pet pt = new Dog("大红");
System.out.println(pt);
//向上转型范例 跟上面的一个父类和二个子类一起运行
public class PetTest{
//传入父类
public void work(Pet pet){
pet.eat();
}
public static void main(String[]args){
Dog dog = new Dog("大红");
dog.gender="公";
dog.hair="金毛";
PetTest pt = new PetTest();
pt.work(dog);
/**
输出结果:
大红用嘴巴吃东西
*/
向上转为大类,放弃一切个体特征,比如去澡堂子脱掉衣服,大家都一样
父类引用指向子类对象,子类对象独有的方法,特征被隐藏,共有的才会显示出来
Pet pt = new Dog();
向上转型的时候,父类
做参数的都是父类,塞进去的都是子类
向下转型:
Pet pt = new Dog("大红");
Dog dog = (Dog)pt;
dog.look();
向下转为个体,穿上衣服获得个体特征
Dog dog = (Dog)pt;
6.不能被继承的父类成员:
一、private
二、子类与父类在不同包
三、构造方法
7.权限:
public: 公共权限:被public修饰 的成员,可以在任何一个类中被调用,不管同包或不同包 ,是权限最大的一个修饰符。
private: 私有权限:被private修饰 的成员,只能在定义它们的类中使用,在其他类中不能调用
default: 默认权限(包权限):默认权限即同包权限,同包权限的元素只能在定义它们的类中,以及同包的类中被调用
protected: 受保护权限:
8.关键字final
final:是最终变量的意思,只可以用不可以改(全小写)