abstract修饰类是不能通过new来创建对象,因此需要借助子类来实现
抽象类:接口中提供了get,set方法及构造器
abstract class Animal{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Animal(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Animal() {
super();
}
void run(){
System.out.println("跑");
}
void sleep(){
System.out.println("睡觉");
}
}
子类:子类提供了特有的方法
class Tigher extends Animal{
public void breath(){
System.out.println("用肺呼吸");
}
public void run(){
System.out.println("跑");
}
}
class Fish extends Animal{
public void breath(){
System.out.println("用鳃呼吸");
}
public void run(){
System.out.println("游泳");
}
}
测试:实例化子类后就可以调用方法了
其中方式二调用子类方法时用到了类型转换
public class AnimalTest {
public static void main(String[] args) {
//方式一
Fish fish = new Fish();//实例化
fish.run();//调用父类方法
fish.breath();//调用子类方法
System.out.println();
//方式二
Animal a = new Tigher();//实例化
a.run();//调用父类方法
((Tigher) a).breath();//类型转换,调用子类方法
}
}