第三章继承与多态
一、继承
继承是Java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
定义:继承就是子类继承父类的特征和行为,使的子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
语法:
[修饰符] class 子类名 [extends 父类名]{
// 类定义部分
}
eg:
//宠物类 父类/超类/基类
public class pet{
String name;
int age;
public void play(){
System.out.println(name+"正在跟你玩!");
}
}
//狗狗类 继承了宠物类 通过关键字extends
public class Dog extends Pet{
public void talk(){
System.out.println(name+"在汪汪!");
}
}
二、重载和重写
重载:在同一个类中多个方法可以具有相同的方法名,但参数必须不同。
重写:在子类中重新定义了父类中某方法的运行效果。
子类需要访问父类中成员时:使用super关键字
public class Car extends Vehicles{
public Car(String brand,String color){
super(brand,color); // 在子类中调用父类的属性和方法 使用super关键字
}
}
三、多态
定义:
多态是同一个行为具有多个不同表现形式或形态的能力。
//宠物类 父类/超类/基类
public class pet{
String name;
int age;
public void play(){
System.out.println(name+"正在跟你玩!");
}
}
public class Cat extends Pet{
public void play(){
System.out.println(name+"在喵喵!");
}
public void cc(){
System.out.println("在铲bb");
}
}
pubiic static void main(String[] args){
Pet p1=new Cat();
p1.name="tom";
p1.play(); // 猫猫类的play方法被执行System.out.println(name+"在喵喵!");
}
instanceof运算符
a instanceof A a对象是A类的类型
pubiic static void main(String[] args){
Pet p1=new Cat();
p1.name="tom";
p1.play();
if(p1 instanceof Cat){ //先验证后转换
Cat c=(Cat)p1; //强制转换
c.cc();
}