十二、java中的抽象类
来源:互联网 发布:网易对战平台mac版 编辑:程序博客网 时间:2024/05/16 18:15
Java抽象类 就是把具有相同特性的事物归为一个抽象类
概念
- 抽象类不能直接实例化对象。(即不能new一个新对象)
- 抽象类一般包括一个或几个抽象方法,抽象方法就是abstract修饰的方法。
- 抽象方法只有方法名,没有方法体。(就好比一个模板)
- 抽象类的子类必须重写父类的抽象方法(重写写入方法体)子类才能真正实例化,否则子类也是一个抽象类。
- 抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类
笔者个人见解:
比如水果是总称,我们可以定义一个苹果类、定义一个西瓜类。
然后我们实例化一个苹果对象,实例化一个西瓜对象
我们可以定义一个水果类,但我们无法实例化一个水果对象???
因为水果是总称啊,无法判断我们说的是哪一种水果
这时,水果类就是一个抽象类(就像是一种“模板”)
水果类可以被苹果类继承扩展,也可以被西瓜类继承扩展
抽象类的定义形式:
一般格式如下:
abstract class 类名 {
类体
}
举例://Dog类继承于抽象类Animal。
abstract class Animal{ //抽象类 Animal 动物
String name; //属性名字
Animal(String name){ //普通方法,传名字参数
this.name=name;
}
void getname(){ //普通方法,获取并输出名字参数
System.out.println("Animal's nameis"+ name);
}
Abstract void move() //抽象方法abstract修饰。只声明move方法,但是无方法体!
}
class Dog extends Animal { //狗类 继承 抽象 动物类
int age; //属性 年龄
Dog(String name,int age){ //狗狗 构造方法
super(name); //调用父系name方法
this.age=age; //把传入age参数赋值当前age
}
void getage(){ //获取age方法,获取并输出age参数
System.out.println("Dogis"+ age +"years old");
}
void move(){ //重写父系move方法(写入方法体)(不重写无法实例)
System.out.println(name +" can run");
}
}
Public class AbstractDemo{
public static void main(String args[]){
Dog d=newDog("汪小白",5);
d.getname(); //父系getname方法
d.getage(); //自己的getage方法
d.move(); //自己重写的move方法
}
}
程序运行结果:
Animal's name is 汪小白
Dog is 5 years old
汪小白 can run
- 十二、java中的抽象类
- Java面向对象笔记(十二)抽象类
- java中的抽象类
- Java中的抽象类
- Java中的抽象类
- Java中的抽象类
- java中的抽象类
- java中的抽象类
- JAVA中的抽象类
- java中的抽象类
- java中的抽象类
- java中的抽象类
- java中的抽象类
- java中的抽象类
- Java中的抽象类
- java中的抽象类
- JAVA中的抽象类
- java中的抽象类
- 287. Find the Duplicate Number
- 机器学习玩家必收——常用N大算法
- Sharding模式
- (七)计算器实例
- poj 2115 C Looooops
- 十二、java中的抽象类
- LEETCODE--Number of Boomerangs
- Lottie开源动画库使用教程
- 一文读懂机器学习,大数据/自然语言处理/算法
- 第二章:Java基本语法
- Jenkins进行持续集成
- 2016noip练习题3.随机
- python与条件随机场CRF
- opencv 线性邻域滤波专场:方框滤波、均值滤波与高斯滤波