继承
编译顺序:
先父类后子类;
先属性,后构造。
继承与c++有诸多不同,请注意。java只能单继承
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class Animal { public int age; public String name; public void eat(){ System.out.println("Eat Somethings!"); } } public class Dog extends Animal { public void eat(){ System.out.println("Eat Dog's food!"); } } public class Initi { public static void main(String[] args) { Dog one =new Dog(); one.eat(); } } Eat Dog's food! */
|
多态
一、引用多态
二、方法多态
1 2 3 4 5 6 7 8 9 10
| public static void main(String[] args) { Animal one = new Animal(); Animal two = new Dog(); Animal four = new Dog(); one.eat(); two.eat(); }
|
abstract
abstract修饰类
不关注之类的实现,但是关注子类的必有得特征
abstract修饰方法,只需声明,不必自己实现
抽象类不能直接创建,但是可以定义引用变量
接口
nterface–接口
一种特殊的类,由全局常量和公共的抽象方法组成。
他规定了一群类说必须遵守的规则。需要被继承,所以用public
属性:public static final
方法:public abstract
命名:IXXX,用“I”区别普通类文件
接口的引用可以指向实现了接口的对象
匿名内部类来实现接口方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| IPlayGame p1=new SmartPhone(); p1.PlayGame(); IPlayGame p2=new PSP(); p2.PlayGame(); IPlayGame p3=new IPlayGame(){ @Override public void PlayGame() { System.out.println("p3使用匿名内部类实现"); } }; p3.PlayGame(); new IPlayGame(){ @Override public void PlayGame() { System.out.println("使用匿名内部类实现"); } }.PlayGame();
|