1.1、抽象类概述
没有方法体
1.2、抽象类的特点
1.3、抽象类的成员特点
package itheima_03;
public abstract class Animal {
private final String city="北京";
private int age=10;
//可以有非抽象方法
public void show(){
// city="上海";
System.out.println(city);
age=20;
System.out.println(age);
}
// public abstract void eat();
// 可以有构造方法
public Animal(){}
public Animal(int age) {
this.age = age;
}
// 可以有成员方法
/* city被final权限修饰符锁定了,不能赋值
public void setCity(String city){
this.city=city;
}*/
public String getCity() {
return city;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
抽象类案例:猫和狗
需求:请采用抽象类的思想实现猫和狗的案例,并在测试类中进行测试
测试类
package itheima_04;
public class Cat extends Animal{
public Cat (){
}
public Cat (String name ,int age){
super(name, age);
}
public void eat(){
System.out.println("猫吃鱼");
}
}
父类
package itheima_04;
public abstract class Animal {
private String name;
private int age;
// 构造方法
public Animal (){
}
public Animal (String name ,int age){
this.name=name;
this.age=age;
}
// 成员方法get/set
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
// 抽象方法
public abstract void eat();
}
子类
package itheima_04;
public class Cat extends Animal{
public Cat (){
}
public Cat (String name ,int age){
super(name, age);
}
public void eat(){
System.out.println("猫吃鱼");
}
}