最近开始看java的一些东西,感觉比python麻烦些,今天学习了面向对象的一些东西,觉得挺多挺复杂,这里做个知识总结
以一个简单的例子来说明java面向对象的三大特性,封装,继承,多态,有一个动物(Animal)基类,定义了run与eat方法,然后有一个猫(Cat)与狗(Dog)的子类继承了动物这个父类,子类重写(override)了父类的run与eat方法,同步又重载(overload)了run与eat方法,同时又定义了一个交配(Icopulation)的接口,让狗来implements交配接口,同时又创建一个Human类来专门implements交配接口
下面是具体的实现代码,没有什么实际的应用,只是作为学习用 Animal.java 这个是父类1 2 3 4 5 6 7 8 9 10 package com.yangyanxing.www;public class Animal {public void run () {System.out.println("我是所有动物的跑" ); } public void eat () {System.out.println("我是所有动物在吃" ); } }
Icopulation.java 交配的接口
1 2 3 4 5 package com.yangyanxing.www;public interface Icopulation {public void copulation () ;}
Dog.java Dog的子类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package com.yangyanxing.www;public class Dog extends Animal implements Icopulation {public void run () {System.out.println("我是一条狗在跑" ); } public void run (int a) {System.out.printf("我是只狗,已经跑了%d公里了n" ,a); } public void eat () {System.out.println("我是一条狗是吃" ); } public void creame () {System.out.println("这是一条狗在叫" ); } public void copulation () {System.out.println("狗在交配" ); } }
Cat.java Cat子类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package com.yangyanxing.www;public class Cat extends Animal {public void run () {System.out.println("我是一只猫在跑" ); } public void eat () {System.out.println("我是一条猫是吃" ); } public void eat (String food) {System.out.printf("我是只猫,我正在吃%sn" ,food); } public void creame () {System.out.println("这是一条猫在叫" ); } }
Human.java 实现了交配的Human类
1 2 3 4 5 6 7 8 9 10 11 12 package com.yangyanxing.www;public class Human implements Icopulation {@Override public void copulation () {System.out.println("人在交配" ); } }
Testoob.java 具体的测试代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 package com.yangyanxing.www;public class Testoob {public static void main (String[] args) {Animal a = new Animal(); Animal a1 = new Dog(); Animal a2 = new Cat(); Dog dog = new Dog(); Cat cat = new Cat(); a.run(); a.eat(); a1.run(); a1.eat(); a2.run(); a2.eat(); dog.creame(); cat.creame(); cat.eat("鱼" ); dog.run(5 ); Icopulation idog = new Dog(); idog.copulation(); Icopulation ihuman = new Human(); ihuman.copulation(); } }
以下是程序运行的输出结果
我是所有动物的跑
我是所有动物在吃
我是一条狗在跑
我是一条狗是吃
我是一只猫在跑
我是一条猫是吃
这是一条狗在叫
这是一条猫在叫
我是只猫,我正在吃鱼
我是只狗,已经跑了5公里了
狗在交配
人在交配
欢迎关注我的公众号--序语程言,里面会分享一些编程的基础与一些问题的解决