首页 > 代码库 > Java—面向对象(一)
Java—面向对象(一)
说到面向对象,就应该说说它的那几个核心的机制:继承,重写,多态,抽象,接口。它们是判断是否运用了面向对象编程的核心。接下来用几个例子,看看它们的演变过程和它们之间的关系。
继承:简单来说,子类自动拥有父类的所有方法和属性。
举例:狗和猫都继承了动物的叫声。子类继承父类。
class Animal { private String name; public void setName(String name){this.name=name;} public String getName(){return name;} public void enjoy(){ //动物叫声。。。 System.out.println("叫声......"); } } class Cat extends Animal { private String eyesColor; //猫自己特有的方法。 public String geteyesColor() {return eyesColor;} public void seteyesColor(String eyesColor) {this.eyesColor =eyesColor;} } class Dog extends Animal { private String eyesColor; ////狗自己特有的方法。 public String geteyesColor() {return eyesColor;} public void seteyesColor(String eyesColor) {this.eyesColor =eyesColor;} } public class Test { public static void main(String args[]){ Cat c = new Cat(); Dog d = new Dog(); c.seteyesColor("猫是蓝眼睛"); //实现了自己的特有方法。 d.seteyesColor("狗是黑眼睛"); c.enjoy(); //也继承了父类的方法。 d.enjoy(); System.out.println(c.geteyesColor()); System.out.println(d.geteyesColor()); } }结果:
解释:狗和猫既有自己的特有属性和方法,也全部拥有了动物(父类)的方法和属性。这就是继承的特点。
不过上述明显有缺陷的就是狗和猫都有自己独特的叫声,但是在这却都只是拥有了动物这个大众化的声音。该怎样改变呢?就用到了我们的重写。
重写:在子类中可以根据需要对从基类中继承来的方法进行重写。看看下面的改写。
class Animal { private String name; public void setName(String name){this.name=name;} public String getName(){return name;} public void enjoy(){ //动物叫声。。。 System.out.println("叫声......"); } } class Cat extends Animal { private String eyesColor; public String geteyesColor() {return eyesColor;} public void seteyesColor(String eyesColor) {this.eyesColor =eyesColor;} public void enjoy() { //重写了父类动物的方法。 System.out.println("猫叫声......"); } } class Dog extends Animal { private String eyesColor; public String geteyesColor() {return eyesColor;} public void seteyesColor(String eyesColor) {this.eyesColor =eyesColor;} public void enjoy() { //重写了父类动物的方法。 System.out.println("狗叫声......"); } } public class Test { public static void main(String args[]){ Cat c = new Cat(); Dog d = new Dog(); c.seteyesColor("猫是蓝眼睛"); d.seteyesColor("狗是黑眼睛"); c.enjoy(); d.enjoy(); System.out.println(c.geteyesColor()); System.out.println(d.geteyesColor()); } }结果:
解释:狗和猫都重写了动物的Enjoy()方法,所以实现了自己独有的叫声。增加了灵活性。
从上面可以看出重写是在继承上进化而来的,所以先继承再进行重写。
PS:由于内容比较多,所以剩下的3个面向对象特点,在下篇博客中讲解。
Java—面向对象(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。