《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
1)抽象子类:不实现/实现一部分抽象父类中的抽象方法
2)普通子类:实现抽象父类中全部的抽象方法
-
抽象类不能实例化
-
抽象类有构造函数的,但是不是为了自己使用,为了子类super()调用
-
抽象类可以定义成员变量/成员常量
-
抽象类中可以定义全普/全抽/半普半抽
-
如果一个类不想被外界实例化,可以把这个类声明成抽象类
-
abstract关键字不可以与private static final共用
2 抽象方法
-
被关键字abstract 修饰的方法就是抽象方法
-
抽象方法没有方法体{ },直接以分号结束
================================================================================
package cn.tedu.oop2;
/本类用于面向抽象编程的推导/
public class DesignTeacher {
}
//3.抽取共性,向上形成父类
abstract class Teacher{
String name;
int id;
public abstract void ready();
public abstract void teach();
}
//1.创建培优CGB老师类
//业务:主打互联网架构与微服务
class CGBTeaher extends Teacher{
@Override
public void ready(){
System.out.println(“正在备课:互联网架构与微服务”);
}
@Override
public void teach(){
System.out.println(“正在讲课:互联网架构与微服务”);
}
}
//2.创建高手加薪班老师类
//主打:基础加强 框架加强 高新技术
class ACTTeacher extends Teacher{
@Override
public void ready(){
System.out.println(“正在备课:基础加强 框架加强 高新技术”);
}
@Override
public void teach(){
System.out.println(“正在讲课:基础加强 框架加强 高新技术”);
}
}
//创建抽象父类的子实现类SCDTeacher
//这是一个抽象子类,只实现抽象父类中的一个抽象方法
abstract class SCDTeacher extends Teacher{
@Override
public void ready() {
System.out.println(“正在研发中…”);
}
}
==================================================================================
- 定义父类小鸟类Bird :
腿legNumbers的数量为2
下蛋eggNumbers数量可以自定义
拥有飞行fly()功能 下蛋layEggs()功能
package cn.tedu.review;
//1.定义父类小鸟类
public abstract class Bird {
//2.定义小鸟类中的成员常量,腿的数量为2
final int LEG_NUMBERS = 2;
//3.定义小鸟类中的成员变量,下蛋的数量
int eggNumbers;
//4.定义小鸟类的普通方法
public void fly(){
System.out.println(“小鸟飞呀飞~”);
}
//5.定义小鸟类的抽象方法
public abstract void layEggs();
}
- 定义子级鸽子类Pigeon:
它既会飞,也会下蛋
package cn.tedu.review;
//6.定义小鸟类的子类鸽子类
public class Pigeon extends Bird{
//7.实现抽象父类中未实现的方法
@Override
public void layEggs() {
System.out.println(“鸽子的下蛋数量为:2个”);
}
}
- 定义子级燕子类Swallow:
它既会飞,也会下蛋,还有自己的特有功能筑巢makeNest()
package cn.tedu.review;
//8.创建小鸟类的第2个子类燕子类
public class Swallow extends Bird{
//9.定义燕子类自己的成员变量(与父类的成员变量同名)
int eggNumbers = 6;
//10.实现抽象父类中未实现的抽象方法
@Override
public void layEggs() {
System.out.println(“燕子的下蛋数量:”+eggNumbers);
}
//11.定义子类独有的功能
public void makeNest(){
System.out.println(“燕子筑巢~”);
}
}
- 创建测试类进行测试:
package cn.tedu.review;
//12.创建测试类
public class TestAnimal {
public static void main(String[] args) {
//13.创建鸽子类对象并进行测试
Pigeon p = new Pigeon();
System.out.println(p.LEG_NUMBERS);//2
System.out.println(p.eggNumbers);//0
p.layEggs();//鸽子的下蛋数量为:2个
p.fly();//小鸟飞呀飞~
//14.创建燕子类对象并进行测试
Swallow s = new Swallow();
System.out.println(s.LEG_NUMBERS);//2
System.out.println(s.eggNumbers);//6
s.fly();//继承过来的方法
s.layEggs();//实现了的抽象方法
s.makeNest();//自己的特有方法
}
}
==================================================================================
- 定义父类昆虫类Insect:
腿的数量为6,产卵的数量可以自定义,拥有飞行的功能还有产卵spawn的功能
package cn.tedu.review;
//1.创建抽象父类昆虫类
public abstract class Insect {
//2.定义成员常量:腿的数量为6
final int LEG_NUMBERS = 6;
//3.定义成员变量
int eggNumbers;//产卵的数量
//4.定义一个普通方法
public void fly(){
System.out.println(“我是昆虫的飞行功能~”);
}
//5.定义抽象方法–产卵功能
public abstract void spawn();
}
- 定义子级蚂蚁类Ant:
它既会飞,也会产卵
package cn.tedu.review;
//6.创建昆虫类的子类蚂蚁类
public class Ant extends Insect{
//7.添加抽象父类中未实现的抽象方法
@Override
public void spawn() {
System.out.println(“蚂蚁产卵的数量为:300”);
}
}
- 定义子级蜜蜂类Bee:
它既会飞,也会产卵,还有自己的特有功能制作蜂蜜makeHoney
package cn.tedu.review;
//8.创建昆虫类的子类蜜蜂类
public class Bee extends Insect{
//9.定义子类自己的同名成员变量
int eggNumbers = 200;
//10.实现抽象父类中未实现的抽象方法
@Override
线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识
一线互联网P7面试集锦+各种大厂面试集锦
学习笔记以及面试真题解析
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
c class Bee extends Insect{
//9.定义子类自己的同名成员变量
int eggNumbers = 200;
//10.实现抽象父类中未实现的抽象方法
@Override
线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识
[外链图片转存中…(img-ebJNlXEg-1714415000228)]
一线互联网P7面试集锦+各种大厂面试集锦
[外链图片转存中…(img-I6qrY5Dq-1714415000229)]
学习笔记以及面试真题解析
[外链图片转存中…(img-NdObRSkj-1714415000230)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!