面向对象_06抽象类:abstract接口:interface实现:implements
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象_06抽象类:abstract接口:interface实现:implements相关的知识,希望对你有一定的参考价值。
抽象类:abstract
抽象:没有足够的描述功能,事物不具体的描述,却又有共性。
特点:
1,方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰,抽象方法必须定义在抽象类中,该类也必须被abstract修饰。
2,抽象类不能被实例化。
3,抽象类必须有其子类覆盖所有的抽象方法后,该子类才可以实例化,否则该子类还是抽象类。
抽象类细节常见问题:
1,抽象类中有构造函数吗?
有,用于给子类对象进行初始化
2,抽象类可以不定义抽象方法吗?
可以,但是少见,目的就是不让该类创建对象。通常这个有方法体,却没有内容。
abstract class Demo{
void show();
void show(){};//有方法体却没有内容
}
3,抽象关键字不可以和那些关键字共存?
非法修饰符组合,abstract和private、static、final
4,抽象类和一般类的异同点?
相同点:抽象类和一般类都是描述事物,都在内部定义成员。
不同点:1,一般类有足够的信息描述事物。
抽象类描述事物的信息有可能不足。
2,一般类中不能定义抽象方法,只能定义非抽象方法。
抽象类可以定义抽象方法,同时也可以定义非抽方法。
3,一般类可以被实例化
抽象类不可以被实例化
5,抽象类一定是个父类吗?
是,因为需要子类覆盖其方法后才可以对子类实例化。
Example:
1 package new_Object; 2 //定义一个抽象类 3 abstract class Person_A{ 4 abstract void show();//抽象方法show(); 5 } 6 //Student类继承Person类 7 class Student_A extends Person_A{ 8 //实现抽象方法show(); 9 void show(){ 10 System.out.println("抽象类"); 11 } 12 } 13 public class Abstract_class { 14 public static void main(String[] args) { 15 Student_A stu=new Student_A(); 16 stu.show(); 17 } 18 }
接口:interface{} 是一种特殊的抽象类,一个类可以实现多个接口。
当一个类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式来定义和表示,就是接口 interfce。
接口不可以实例化,只有由实现接口的子类并覆盖了接口中所有的抽象方法后,该子类才可实例化,否则这是子类就是抽象类。
接口中常见的成员:而且这些成员都有固定的修饰符
1,全局常量:public static final
2,抽象方法:public abstract
特点:接口中的成员都是公共的权限
1 package new_Object; 2 //定义school接口 3 interface School{ 4 int ID=2015112401; 5 String name="张三"; 6 //定义sspeak、show抽象方法 7 void speak(); 8 void show(); 9 } 10 class Stu implements School{ 11 //实现speak、show方法 12 public void speak(){ 13 System.out.println("实现speak方法"); 14 } 15 public void show(){ 16 System.out.println("实现show方法"); 17 } 18 } 19 //测试类 20 public class Interface_implements { 21 public static void main(String[] args) { 22 Stu p=new Stu();//创建student实例对象 23 //调用student类方法 24 p.speak(); 25 p.show(); 26 } 27 }
多实现:在Java中不直接支持多继承,因为会出现调用的不确定性。所有Java将多继承机制改良,在Java改良成了多实现。
类与类之间是继承关系,类与接口之间是实现关系(implements)
Example:
1 interface A{ 2 public void show(); 3 } 4 interface B{ 5 public void show(); 6 } 7 class Test implements A,B//多实现 8 { 9 public void show(); 10 }
以上是关于面向对象_06抽象类:abstract接口:interface实现:implements的主要内容,如果未能解决你的问题,请参考以下文章