Java之旅_面向对象_继承
继承的概念:
从已有的类派生出新的类称为继承。
子类继承父类的属性和方法,并可进行扩展。继承需要符合的关系是:is-a (子类是一个父类)
继承关键字:extends
为什么要继承:
提高代码复用性
继承的特性:
1.子类拥有父类非private的属性、方法
2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
3.子类可以用自己的方式实现父类的方法
4.java的继承是单继承(即一个子类只能继承一个父类);但是可以多重继承,C->B->A .
继承关键字:
可以使用extends和implements两个关键字实现继承,而且所有的类都是继承于java.lang.Object,当
一个类没有继承的两个关键字,刚默认继承Object类(这个类在java.lang包中,不需要import)
extends关键字:
java是单继承,一个子类只能继承一个父类
public class Animal{ private String name; private int id; public Animal(String myName,int myid){ name = myName; id = myid; } public void eat(){ } public void sleep(){ } } public class dog extends Animal{ }
implements关键字:
类继承接口,可以继承多个接口(逗号分开),使java变相具有多继承的特性
public interface A{ public void eat(){ } } public interface B{ public void sleep(){ } } public class C implements A,B{ }
super与this关键字:
super:调用父类的构造方法、方法、数据域
this:指向自己的引用
public class Animal{ void eat(){ System.out.println("animal:eat"); } } public class Dog extends Animal{ void eat(){ System.out.println("dog:eat"); } void testeat(){ super.eat();//调用父类的方法 this.eat();//调用自己的方法 } } public class Test { public static void main(String[] args){ Dog d = new Dog(); d.testeat(); } }
final关键字:
final修饰类把类定义为不能继承的,即最终类;
final修饰方法则方法不能被子类重写;
构造器:
子类不能继承父类的构造器(构造方法或者构造函数)。
父类构造器带有参数时,子类构造器中必须使用super调用父类构造器,并配适当参数。
父类构造器不带参数时, 系统自动调用父类构造器,子类可不必使用super调用。
class SuperClass{ SuperClass(){ System.out.println("SuperClass()"); } } class SubClass extends SuperClass{ SubClass(){ System.out.println("SubClass()"); } } public class Test{ public static void main(String[] args){ SubClass sub = new SubClass(); } }
//运行结果:
SuperClass()
SubClass()
class SuperClass{ SuperClass(int n){ System.out.println("SuperClass(int n)"); } } class SubClass extends SuperClass{ SubClass(){ super(100); System.out.println("SubClass()"); } } public class Test{ public static void main(String[] args){ SubClass sub = new SubClass(); } }
//运行结果:
SuperClass(int n) SubClass()
父类也称为超类、基类
子类也称为次类,扩展类,派生类

浙公网安备 33010602011771号