一、抽象
1、简单说明
- 只是声明,并不去实现
- 抽象方法:
public abstract void act();
,没有方法体,直接结束,抽象方法只能存在于抽象类中。 - 抽象类:
public abstract class Test{}
,继承抽象类的子类必须重写父类中的方法(包括抽象方法),否则子类也必须是抽象类。
2、注意事项
(1)可以用于强制要求子类中必须有哪些方法,因为必须重写抽象父类的方法。
(2)抽象类不能实例化其他类的对象。
(3)不过,抽象类中可以有正常的方法,不一定都是抽象方法。
3、测试练习
- 在抽象类中实例化对象报错:
- 在继承了抽象类的普通子类中实例化对象不会报错:
abstract class Test06_Father{
final int height = 180;
public abstract void act0();
public void act1(){}
public void act2(){}
}
public class Test06_Son extends Test06_Father{
public void act0(){
System.out.println("第零次重写抽象方法……");
}
public void act1(){
System.out.println("第一次重写普通方法……");
}
public void act2(){
System.out.println("第二次重写普通方法……");
}
public void speeking(){
System.out.println("我是不会变心的!!!");
}
public static void main(String[] args){
int height = 99;
Test06_Son ts = new Test06_Son();
ts.act0();
ts.act1();
ts.act2();
ts.speeking();
}
}
二、接口
1、简单说明
- 接口实际上是一种特殊的抽象类,里面所有内容都是公开的。
- 接口中所有的方法都是抽象方法(不可以有普通的方法),就相当于用抽象方法占个位。
- 使用interface来声明一个接口,在接口中定义抽象方法时可以不使用abstract。
2、注意事项
(1)接口中定义的属性必须是public static final的,而接口中定义的方法则
必须是public abstract的,因此这些修饰符可以部分或全部省略;
(2)接口中定义的属性的值在实现类中不能被更改;
(3)一个类只能实现某个接口,不能继承某个接口;但接口可以继承接口
接口不但可以继承接口,而且可以继承多个接口,即接口允许多继承;
(4)如果一个类只重写(实现)了一个接口的部分方法,则该类必须的声明为抽象类,否则就必须重写(实现)继承的接口中所有的抽象方法;
(5)一个类可以在继承一个父类的同时实现一个或多个接口,但extends关键字必须的在implements(实现)之前;
(6)不可以new接口对象,但可以定义–个接口引用类型的变量并将其指向
实现接口的对象,达到多态的目的。
3、测试练习
interface Test06_Valuable{
void getMoney();
}
class Test06_Gold implements Test06_Valuable{
public void getMoney(){
System.out.println("是金子总是值钱的!");
}
}
public class Test06_Son{
public static void main(String[] args){
Test06_Gold go = new Test06_Gold();
go.getMoney();
Test06_Valuable tv = new Test06_Gold();
tv.getMoney();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)