个人学习笔记,如有错误请多指正。
package lesson04;
public class Demo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/* 1.抽象类:可以理解为看不到的类
2.抽象类的特点:
抽象类和抽象方法必须用abstract关键字修饰
abstract class 类名{}
3.抽象类不能实例化,那么如何进行抽象类实例化?
由具体的子类实例化。其实这也是多态的一种,抽象类多态
4.抽象类不一定有抽象方法,有抽象方法的类一定是个抽象类或者是接口
5.抽象类的子类
5.1要么重写抽象类中的所有抽象方法
5.2要么是抽象类*/
//Cannot instantiate the type Animal
//无法实例化Animal类,因为Animal是抽象类,不能被实例化
//Animal animal = new Animal();
Cat cat = new Cat();
cat.eat();
cat.sleep();
Dog dog = new Dog();
dog.eat();
dog.sleep();
}
}
//抽象类
abstract class Animal{
//抽象方法,抽象方法不实现,也就是不要写{}花括号
public abstract void eat();
public abstract void sleep();
}
//The type Cat must implement the inherited abstract method Animal.eat()
//Cat类必须实现Animal的抽象方法eat
class Cat extends Animal{
//5.1要么重写抽象类中的所有抽象方法
@Override//重写方法,Cat重写父类Animal的eat抽象方法
public void eat() {
// TODO Auto-generated method stub
System.out.println("eatting fish...");
}
@Override
public void sleep() {
// TODO Auto-generated method stub
System.out.println("laydown...");
}
}
class Dog extends Animal{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("eatting bones...");
}
@Override
public void sleep() {
// TODO Auto-generated method stub
System.out.println("getdown...");
}
}
//5.2要么是抽象类,但是Duck是抽象类,还是得由其子类来重写抽象方法
abstract class Duck extends Animal{
}
class Dd extends Duck{
@Override
public void eat() {
// TODO Auto-generated method stub
}
@Override
public void sleep() {
// TODO Auto-generated method stub
}
}
798



被折叠的 条评论
为什么被折叠?



