(1.13)java基础语法自述--接口与继承(接口,对象转型,重写)
程序员文章站
2022-05-21 21:04:50
...
(1.13)java基础语法自述–接口与继承(接口,对象转型,重写)
一,接口
- 接口就像是一种约定,约定某些类是特殊类,他们就可以进行一些特殊的方法
-
“读书”接口
- 创建一个接口,Book,再申明一个方法reading,但是没有方法体,是一个“空” 方法。
- 再设计一类人,能够使用阅读的方法,这类人继承Human类,所以继承了name,age等属性
- 实现某个接口,就相当于承诺了某种约定。实现语法的关键字是implements.
public class Human{//设计一个Human类,具有姓名,年龄的属性 String name; int age; } public interface Book{//接口一 public void reading(); } public interface Sport{//接口二 public void football(); } public class hhh extends Human implements Book,Sport{//hhh继承Human类中的name属性,实现了Book,Sport接口。 @override public void reading(){ System.out.println("完成一次读书"); } @override public void Sport(){ System.out.println("完成一次踢球"); } }
二,对象转型
- 首先区分引用类型与对象类型的概念:
public class Books{
String name;
int age;
public static void main(String[] args){
Books hhh = new Books();//有一个对象new Books; 同时也有一个引用hhh,两者引用类型和对象类型都是Books,通常情况下保持一致。
}
1. 子类转父类(向上转型)
-
所谓转型,是指当引用类型和对象类型不一致的时候,才需要进行适当转换。
- 转型有时会成功,有时失败
- 判断转型的基本方法是把右边的当做左边来用 ,看是否能说通。
-
Human h = new Human();//人类是父类 man hh = new man();//男人是父类的子类 h = hh;//将男人当做人类来用是合理。反过来就不合理了。
-
总结,所有的子类转换为父类都合理,
2.父类转子类(向下转型)
-
父类转子类,有时候行,有时则不行,所以必须强制转换(但也有损失和风险)。
-
Human h = new Human();//人类是父类 man hh = new man();//男人是父类的子类 hh = (man)h;//h这个引用,指向的对象时man,需要强制转换
3. 没有继承关系的两个类
- 互相转换,一定会失败
三.重写
- 子类可以继承父类的方法,
- 在继承后,重复提供该方法,就叫做方法的重写。又叫覆盖override。
1. 父类Books
-
父类Books有个方法,叫做effect
package exercise; public class Books{ String name; int page; public void reading(){ System.out.println("阅读"); } public void effect(){ System.out.println("物品使用后,可以有效果"); } }
2.子类Subclass
-
子类Subclass在继承了Item后,同时也提供了effect方法
package exercise; public class Subclass extends Item{ public void effect(){ System.out.println("有效果"); } }
3.调用重写的方法
-
调用重写的方法,调用就会执行重写的方法,而不是重复从父类的原方法.
package exercise; pubclic class Books{ String name; int page; public void effect(){ System.out.println("物品使用后,可以有效果"); } public static void main(String[] args){ Books h = new Books(); h.effect(); Subclass hh = new Subclass(); hh.effect();//调用重写的作用就体现在这。 } }
上一篇: 深入理解java类加载之类的初始化时机
下一篇: PHP大转盘中奖概率算法实例