java之抽象类
1、用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。
2、含有抽象方法的类必须被声明抽象类,抽象类必须被继承,抽象方法必须被重写。
3、抽象类不能被实例化。
4、抽象方法只需声明,而不需实现。
public class TestPolymorphic{
public static void main(String args[]){
//Animal animal = new Animal("animal"); 抽象类不能被实例化
Cat cat = new Cat("cat","blue");
Dog dog = new Dog("dog","black");
//Lily l1 = new Lily("l1",animal);
Lily l2 = new Lily("l2",dog);
//l1.myAnimalEnjoy();
l2.myAnimalEnjoy();
}
}
class Lily{
private String name;
private Animal animal;
public Lily(String name, Animal animal){
this.name = name;
this.animal = animal;
}
public void myAnimalEnjoy(){
animal.enjoy();
}
}
abstract class Animal{ //声明抽象类
private String name;
public Animal(String name){
this.name = name;
}
/*public void enjoy(){
System.out.println("叫声~~~");
}*/
public abstract void enjoy(); //声明抽象方法
}
class Dog extends Animal{
private String forlorColor;
public Dog(String name,String forlorColor){
super(name);
this.forlorColor = forlorColor;
}
public void enjoy(){
System.out.println("dog叫声~~~");
}
}
class Cat extends Animal{
private String eyesColor;
public Cat(String name,String eyesColor){
super(name);
this.eyesColor = eyesColor;
}
public void enjoy(){
System.out.println("cat叫声~~~");
}
}
运行结果:

总结:抽象类一般是用在多态。
java之抽象类的更多相关文章
- JAVA:抽象类VS接口
JAVA中抽象类和接口的区别比较,以及它们各自的用途. 1.JAVA抽象类: 抽象类除了不能实例化以外,跟普通类没有任何区别.在<JAVA编程思想>一书中,将抽象类定义为“包含抽象方法的类 ...
- 转:二十一、详细解析Java中抽象类和接口的区别
转:二十一.详细解析Java中抽象类和接口的区别 http://blog.csdn.net/liujun13579/article/details/7737670 在Java语言中, abstract ...
- 关于JAVA中抽象类和接口的区别辨析
今天主要整理一下新学习的有关于Java中抽象类和接口的相关知识和个人理解. 1 抽象类 用来描述事物的一般状态和行为,然后在其子类中去实现这些状态和行为.也就是说,抽象类中的方法,需要在子类中进行重写 ...
- [ Java学习基础 ] Java的抽象类与接口
一.抽象类 1. 抽象类 Java语言提供了两种类:一种是具体类:另一种是抽象子类. 2. 抽象类概念: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的 ...
- java中抽象类的定义和使用
java虽然比较简单,但是细节的知识点还是很多的,现在,介绍一下抽象类的定义和实现基础. 指的是在类中定义方法,而不去实现它,而在它的子类中去具体实现,继承抽象类的子类必须实现父类的抽象方法,除非子类 ...
- Java基础-抽象类和接口
抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力.他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别. 抽象定义: 抽象 ...
- JAVA的抽象类和接口
抽象类 在面向对象的概念中,所有的对象都是通过类来描述的,但是反过来,并不是所有的类都是用来描述对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不能实例化对 ...
- Java中抽象类也能实例化
在Java中抽象类真的不能实例化么? 在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的.这样就把我搞糊涂了,既然 ...
- Java中抽象类也能实例化.RP
在Java中抽象类真的不能实例化么? 在学习的过程中,发现了一个问题,抽象类在没有实现所有的抽象方法前是不可以通过new来构建该对象的,但是抽象方法却是可以有自己的构造方法的.这样就把我搞糊涂了,既然 ...
- Java 中抽象类与接口的区别
TypeScript 中的接口,有点类似抽象类的概念.Java 中抽象类属于包含属性与抽象行为,而接口通常只是抽象行为.抽象类可以实现模板模式. 参考 https://www.cnblogs.com/ ...
随机推荐
- Xperf Analysis Basics(转)
FQ不易,转载 http://randomascii.wordpress.com/2011/08/23/xperf-analysis-basics/ I started writing a des ...
- [ACM_动态规划] ZOJ 1425 Crossed Matchings(交叉最大匹配 动态规划)
Description There are two rows of positive integer numbers. We can draw one line segment between any ...
- [C++] socket -7 [邮槽]
::利用邮槽实现windons进程通信 ::一般情况下CreateMailslot()常被使用在进程通信的服务器上,在客户端则是用函数CreateFile()打开指定的邮槽之后进行相关的操作. ::将 ...
- 说不尽的MVVM(4) – 发号施令的Command
知识预备 阅读本文,我假定你具备以下知识: C# WPF基础知识 知道WPF的命令 WPF相对WinForm加了一种Command的机制,对用户的操作进行更加灵活的处理,相信很多朋友知道并用过Rout ...
- AngularJS快速入门指南03:表达式
AngularJS通过表达式将数据绑定到HTML. AngularJS表达式 AngularJS表达式写在双大括号中:{{ 表达式语句 }}. AngularJS表达式绑定数据到HTML的方式与ng- ...
- elclipse/myeclipse web.xml自动提示补全问题
默认情况下,在编辑web.xml时是没有自动提示功能的,只能在编辑完成保存时验证语法是否正确. 解决方法: 1.下载(保存)http://java.sun.com/xml/ns/j2ee/web-ap ...
- Linux命令入门
// 查看日历cal // 修改密码passwd // 查看目录和文件ls -lls // 查看当前用户信息whoami // 查看当前在线用户userswho 在Linux中,可以使用 vi 编辑器 ...
- QQ邮箱的安全问题
下午同事群里有人提醒,小心欺诈邮件.邮件内容为你的帐户在XX存在异地登录,已经进入了[保护模式],如需解除请点击[解除保护模式] 除了链接之外,其它跟官方的是一模一样,包括标题. 那个链接的地址是:h ...
- LPC43XX JTAG Scan Chain
Debug and trace functions are integrated into the ARM Cortex-M4. Serial wire debug and trace functio ...
- python3 slice
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:43:06) [MSC v.1600 32 bit (Intel)] on win32Type & ...