JAVA基础-抽象类
2016-03-28 14:45
411 查看
1. 用abstract关键字来修饰一个类时, 这个类叫做抽象类, 用abstract修饰一个方法时, 该方法叫做抽象方法
2. 含有抽象方法的类必须被声明为抽象类,
3. 抽象类必须被继承, 抽象方法必须被重写
4. 抽象类不能被实例化
5. 抽象方法只需声明, 不需要实现.
如果派生类派生了个抽象子类不想实现抽象方法, 可以将自己设定为abstract,可以不用重写抽象方法, 让继承他的子类再去重写方法.
2. 含有抽象方法的类必须被声明为抽象类,
3. 抽象类必须被继承, 抽象方法必须被重写
4. 抽象类不能被实例化
5. 抽象方法只需声明, 不需要实现.
如果派生类派生了个抽象子类不想实现抽象方法, 可以将自己设定为abstract,可以不用重写抽象方法, 让继承他的子类再去重写方法.
abstract class Animal { private String name; Animal(String name) {this.name = name;} public abstract void enjoy(); } class Cat extends Animal { private String eyesColor; Cat(String n,String c) {super(n); eyesColor = c;} public void enjoy() { System.out.println("猫叫声......"); } } class Dog extends Animal { private String furColor; Dog(String n,String c) {super(n); furColor = c;} public void enjoy() { System.out.println("狗叫声......"); } } class Bird extends Animal { Bird() { super("bird"); } public void enjoy() { System.out.println("鸟叫声......"); } } class Lady { private String name; private Animal pet; Lady(String name,Animal pet) { this.name = name; this.pet = pet; } public void myPetEnjoy(){pet.enjoy();} } public class Test { public static void main(String args[]){ Cat c = new Cat("catname","blue"); Dog d = new Dog("dogname","black"); Bird b = new Bird(); Lady l1 = new Lady("l1",c); Lady l2 = new Lady("l2",d); Lady l3 = new Lady("l3",b); l1.myPetEnjoy(); l2.myPetEnjoy(); l3.myPetEnjoy(); } }
相关文章推荐
- java Servlet中的过滤器Filter
- java 多线程访问全局变量,值为null
- Java创建线程
- struts2文件上传
- java 代理模式
- 设计模式之享元模式
- 来段代码提提神-那些无法回避的知识点之struts权限拦截器
- Java Design Pattern
- Spring注解@Component、@Repository、@Service、@Controller区别
- JAVA环境变量
- 发送邮件,加附件
- solution to maven + lombok + eclipse
- Java运行时异常和一般异常
- java 常用五种排序
- java学习笔记(三)
- Spring MVC Spring MyBatis 整合 - 快速上手
- JAVA基础-多态
- Properties类 of Java 的使用
- Spring Security 学习笔记-信道过滤器
- java.util.HashMap.remove()方法实例