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)

重写是对父类允许的方法的实现重新编写,返回值和参数都不能改变。

重载是一个类里面,方法名相同,参数不同,返回值类型也可以不同。

猜你喜欢

转载自www.cnblogs.com/H---/p/8992284.html