(二十)、抽象类
来源:互联网 发布:小额贷款什么软件好 编辑:程序博客网 时间:2024/05/22 05:08
抽象类
抽象类:用abstract修饰的类
抽象方法:只有方法声明,没有方法体,用abstract修饰的方法
1.抽象必须用abstract修饰
2.抽象类可以拥有普通类的所有成员,还可以有抽象方法
3.抽象类不能直接创建对象,只能通过他的非抽象子类来创建
4.抽象类的子类必须实现抽象类的所有抽象方法,如果不实现,
必须把这个子类标记为抽象类
5.抽象类可以没有抽象方法,但抽象方法必须放在抽象类中
6.抽象类和抽象方法不能用final修饰
7.抽象方法不能用private修饰
8.抽象方法能用protected修饰
9.抽象方法不能用static修饰
Demo:
Pet类:
public abstract class Pet { // 抽象类 public abstract void speak(); // 抽象方法}
Dog类:
public class Dog extends Pet { @Override public void speak() { System.out.println("狗在叫"); } public void eat() { System.out.println("狗在吃"); }}
继承Pet并重写了Pet的抽象方法,还具有一个自己的eat()方法
Main类:
public class Main { public static void main(String[] args) { Pet pet = new Dog();// 自动类型转换 pet.speak(); Dog dog = (Dog) pet;// 强制类型转换 dog.eat(); }}
多态
以上面的Demo为例:
Pet pet = new Dog();
两边类型不一致,称之为多态
Pet pet:编译时类型
编译能否通过看编译时类型
编译时能不能通过看编译时类型有没有相应的方法
new Dog():运行时类型
运行时候的具体结果看运行时类型
类型的转换
自动类型转换(自动类型提升,向上转换):把子类的对象赋值给父类的引用
强制类型转换:把父类对象赋值给子类,需强制类型转换
instanceof 判断是否属于哪个类型
对象引用 instanceof 类
0 0
- (二十)、抽象类
- 二十、java的抽象类
- 二十七、继承(十)抽象的物件类型
- (二)抽象类、接口
- (十)抽象和接口
- DRP项目(十):抽象工厂加反射框架实例(二)
- 54 Java 抽象类和抽象方法 (二)
- Junit实现抽象类测试(二)
- 项目二(抽象基类shape)
- 接口与抽象类(二)
- 接口与抽象类(二)
- 抽象数据类型与类层次(二)
- Junit实现抽象类测试(二)
- java笔记--day09--抽象类(二)
- java(二)-抽象类接口
- java 基础知识二(抽象类‘、接口)
- 抽象类(二)
- 抽象类, 接口(二)
- light oj 1056
- 日期的加减类
- HDOJ 2098 素数表
- leetcode 69 Sqrt(x)
- 学习清单
- (二十)、抽象类
- 数据结构实验之串三:KMP应用
- 硬币游戏
- 【OpenCV】3D场景定位的一些资源
- 国产操作系统发展思考
- hdoj 1711 Number Sequence 【KMP 入门--晕晕滴】
- UVALive - 4618 Wormholes(负环)
- 进程间传递文件描述符
- Effective C++_Item13