面向对象笔记整理
1、instanceof看看前面那个引用指向堆内存中的实际的对象是不是属于某一个类。
2、面向对象动态绑定也叫多态
class Animal{
public int age;
public String name;
public Animal(int age,String name){
this.age=age;
this.name=name;
}
public void haha(){
System.out.println("动物笑了");
}
}
class Dog extends Animal{
int height;
public Dog(int age,String name,int height){
super(age,name);
this.height=height;
}
public void haha(){
System.out.println("汪汪的笑了");
}
}
class Cat extends Animal{
public Cat(int age,String name){
super(age,name);
}
public void haha(){
System.out.println("喵喵的笑了");
}
}
class People{
public String name;
public Animal pat;
public People(String name,Animal pat){
this.name=name;
this.pat=pat;
}
public void mypathaha(Animal pat){
pat.haha();
}
public void test(Animal pat){
System.out.println(pat.name);
System.out.println(pat.age);
}
}
public class Demo2{
public static void main(String[] args){
//People p=new People("xiaohu",);
Animal a1=new Animal(5,"dongwu1");
a1.haha();
Animal a2=new Dog(6,"dongwu2",10);
a2.haha();
//System.out.println(a2.name+" "+a2.age+"岁了"+a2.height+"米");
System.out.println(a2.name+" "+a2.age+"岁了");
Cat a3=new Cat(9,"dongwu3");
People p1=new People("张三",a1);
p1.mypathaha(a1);
p1.mypathaha(a2);
p1.mypathaha(a3);
}
}