/**
面向对象的三大特性:
封装:
继承:
java中只支持单继承,但是支持多层继承。
子类在实例化过程中会调用所有父类的构造方法。
多态:
*/
class JavaDemo21
{
public static void main(String[] args)
{
Dog dog = new Dog();
dog.eat();
dog.setName("哮天犬");
dog.setAge(5000);
System.out.println(dog.getName()+","+dog.getAge());
Pig pig = new Pig();
pig.eat();
pig.testA();
Dog dog2 = new Dog("缸豆",3);
System.out.println(dog2.getName()+","+dog2.getAge());
}
}
class A
{
public A(){
System.out.println("AA");
}
public void testA(){
System.out.println("A");
}
}
class Animal extends A
{
private String name;
private int age;
public Animal(){
System.out.println("animal");
}
public Animal(String name,int age){
this.name = name;
this.age = age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
public void eat(){
System.out.println("eat!");
}
}
class Dog extends Animal
{
public Dog(){
System.out.println("Dog");
}
public Dog(String name,int age){
//this();
//super()访问父类的对应参数的构造方法
//只能写在第一行
super(name,age);
}
}
class Pig extends Animal
{
public Pig(){
System.out.println("Pig");
}
}
class Cat extends Animal
{
}