面向对象下(多态)
- 多态(简单来说就是一个父类被多个子类继承)
package duixiang4;
public class Example13 {
public static void main(String[] args) {
Animal an1=new Cat();
Animal an2=new Dust();
animalShout(an1);
animalShout(an2);
}
public static void animalShout (Animal an) {
an.shou();
}
}
interface Animal{
void shou();
}
class Cat implements Animal{
public void shou() {
System.out.println("猫猫");
}
}
class Dust implements Animal{
public void shou() {
System.out.println("汪汪");
}
}
- 对象类型转换(分为向上和向下)
Ainmal an1=new Cat(); 向上类型转换,将cat对象当作Aniaml类型使用(注意的是父类不能调用子类方法和属性)
Cat cat =(Cat) animal; 向下类型转换,将animal对象强制转换为Cat类型
3.对象的判断
if(annimal instanceof Cat){
System.out.println(“属于”);
} else{
System.out.println(“不属于”);
}
- Object类提供的四个方法
1equals()相等 2.getClass() 运行类 3hashCode() 哈希 4.toString()重写 - 匿名内部类(用得比较多)
package duixiang4;
//匿名内部类
public class Example18 {
public static void main(String[] args) {
class Cat implements Ji{
public void shout() {
System.out.println("猫猫----");
}
}
// animalShout(new Cat());
}
public static void animalShout(Animal an) {
an.shou();
}
}
interface Ji{
void shout();
}