- 成员变量
可以是变量
也可以是常量构造方法
有构造方法,但不能自身实例化
那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化成员方法
可以有抽象方法,限定子类必须完成某些操作
也可以说有非抽象方法:提高代码复用性
图:注意Animal是抽象类父类(图标)
Animal(抽象类父类)package CCom.Cnn;
//抽象类
public abstract class Animal {
private int age;
public final String name="沸羊羊";
//可以是常量,也可以是变量,可以私有,也可以说是公共的
private int number;
private final String good="100";
//并且还有构造器(无惨/有参)
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public Animal() {
}//可以有无参
public Animal(int age, int number) {
this.age = age;
this.number = number;
}//可以有带参
public abstract void eat();//抽象方法
public void sleep(){
System.out.println("睡觉");
}//不是抽象方法也可以定义
}
AnimalDemo(测试类)
package CCom.Cnn;
public class AnimalDemo {
public static void main(String[] args) {
Animal a=new Cat(14,16);//抽象类也是以多态方法进行
a.eat();
a.sleep();
System.out.println(a.getAge()+","+a.getNumber());//注意了抽象类可以属性私有get/set的
}
}
Cat(子类)
package CCom.Cnn;
public class Cat extends Animal {
public Cat(int a,int b) {
super(a,b);//可以调用父类(抽象类)变量
}
public void eat(){
System.out.println("猫吃猫粮");
}//子类实现抽象类的eat抽象方法
}
输出的结果:
猫吃猫粮
睡觉
14,16



