JavaSE-11.2.1【抽象类、抽象类的特点】

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package day2.yubaby02.p1;
 
/*
2 抽象类
 
2.1 抽象类的概述
    当我们在做子类共性功能抽取时,有些方法在父类中并没有具体的体现,这个时候就需要抽象类了!
    在Java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类!
 
2.2 抽象类的特点
    抽象类和抽象方法必须使用 abstract 关键字修饰
    抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
    抽象类不能实例化(严格来说是不能直接实例化)
        抽象类如何实例化呢?参照多态的方式,通过子类对象实例化,这叫抽象类多态
    抽象类的子类
        要么重写抽象类中的所有抽象方法, 要么是抽象类
 */
 
public class AnimalDemo {
 
    public static void main(String[] args) {
        /*Animal a = new Animal();
        a.eat();*/
 
        Animal aa = new Cat(); //采用多态的形式“创建抽象类对象”
        //多态中的成员方法访问特点:编译看左边父类,执行看右边子类
        aa.eat();
        aa.sleep();
    }
 
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package day2.yubaby02.p1;
 
public abstract class Animal { //抽象类
 
    /*public void eat(){
        System.out.println("动物进食");
    }*/
 
    public abstract void eat(); //抽象方法
 
    public void sleep(){
        System.out.println("动物睡觉打呼噜吗");
    }
 
}

  

1
2
3
4
5
6
7
8
9
10
package day2.yubaby02.p1;
 
public class Cat extends Animal{
 
    @Override
    public void eat(){
        System.out.println("猫不吃饭");
    }
 
}

  

1
2
3
4
5
6
7
8
package day2.yubaby02.p1;
 
public abstract class Dog extends Animal{
 
    /*@Override
    public abstract void eat();*/
 
}

  

posted @   yub4by  阅读(53)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示