Java面向对象,继承,多态
Posted H+
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面向对象,继承,多态相关的知识,希望对你有一定的参考价值。
1,继承
Java 中通过 extends 关键字可以继承一个类,implements可以继承多个接口。继承允许创建等级层次的类。
继承的机制提高了代码的复用性,让类与类之间产生了关系,有了这个关系,才有了多态的特性。
注:Java支持单继承,但是可以多层继承。
子类可以拥有父类的非private的方法和属性,子类可以继承父类的方法,也可以重写父类的方法,还可以对父进行拓展。
增加了类之间的联系,即提高了耦合。
一般格式为:
class 父类 { }
class 子类 extends 父类 { }
Demo1:
1 package com.hpioneer.Demo; 2 3 public class Test_Extends { 4 public static void main(String[] args) { 5 Zi z = new Zi(); 6 //z.show(); 7 } 8 } 9 class Fu { 10 static { 11 System.out.println("静态代码块Fu"); 12 } 13 14 { 15 System.out.println("构造代码块Fu"); 16 } 17 18 public Fu() { 19 System.out.println("构造方法Fu"); 20 } 21 } 22 23 class Zi extends Fu { 24 static { 25 System.out.println("静态代码块Zi"); 26 } 27 28 { 29 System.out.println("构造代码块Zi"); 30 } 31 32 public Zi() { 33 System.out.println("构造方法Zi"); 34 } 35 }
Demo2:
super关键字可以用来实现对父类成员的访问,来引用当前对象的父类。this关键字用于指向自己。
super可以调用父类的构造方法,方法(和子类相同的,被重写)
1 class Animal { 2 void eat() { 3 System.out.println("animal : eat"); 4 } 5 } 6 7 class Dog extends Animal { 8 void eat() { 9 System.out.println("dog : eat"); 10 } 11 void eatTest() { 12 this.eat(); // this 调用自己的方法 13 super.eat(); // super 调用父类方法 14 } 15 } 16 17 public class Test { 18 public static void main(String[] args) { 19 Animal a = new Animal(); 20 a.eat(); 21 Dog d = new Dog(); 22 d.eatTest(); 23 } 24 }
2,重载(Override)和重写(Overload)
重写是对父类允许的方法的实现重新编写,返回值和参数都不能改变。
重载是一个类里面,方法名相同,参数不同,返回值类型也可以不同。
以上是关于Java面向对象,继承,多态的主要内容,如果未能解决你的问题,请参考以下文章