继承的概念:
java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
继承的特性:
1.子类继承父类非PRivate修饰的属性与方法
2.子类可以重写父类的方法
3.子类可拥有自己的属性与方法
4.子类不会继承父类的构造器
5.子类不能覆盖继承的实例变量
6.子类通过super关键字调用隐藏的父类方法
package cn.jontim.blogs.example;/* * Java SE 面向对象之继承 * 交通工具类 */public class Vehicle { //价格 public String price; //制造商 public String manufacturer; //速度 public String velocity; public void outStatement(){ System.out.println("我是一个交通工具~"); } public void outManufacturer(){ System.out.println("我的制造厂商是:"+manufacturer); }}package cn.jontim.blogs.example;/* * Java SE 面向对象之继承 * 汽车类 */public class Car extends Vehicle{}在Cat类中没有自定义任何属性与方法,全部使用从父类继承来的方法public class MainEntrance { public static void main(String[] args){ //子类继承父类非private的属性与方法 System.out.print("Cat:"); Car car = new Car(); car.manufacturer = "BMW"; car.outStatement(); car.outManufacturer(); }}输出结果:Cat:我是一个交通工具~我的制造厂商是:BMW
子类继承父类非private修饰的全部属性与方法package cn.jontim.blogs.example;/* * Java SE 面向对象之继承 * 飞机类 */public class Aircraft extends Vehicle{ public void outStatement(){ System.out.println("我是一架飞机~"); } //子类调用隐藏的父类方法 public void outSuper(){ super.outStatement(); }}public class MainEntrance { public static void main(String[] args){ //子类可重写父类的方法 System.out.print("Aircraft:"); Aircraft aircraft = new Aircraft(); aircraft.outStatement(); aircraft.outSuper(); }}输出结果:Aircraft:我是一架飞机~ 我是一个交通工具~子类可以重写继承于父类的方法,重写的父类方法会默认隐藏子类可以用过super关键字调用隐藏的父类方法
package cn.jontim.blogs.example;/* * Java SE 面向对象之继承 * 火车类 */public class Train extends Vehicle{ //长度 public int length = 200; public void outLength(){ System.out.println("我的长度是"+length+"米~"); }}public class MainEntrance { public static void main(String[] args){ //子类拥有自己的属性和方法 System.out.print("Train:"); Train train = new Train(); train.outStatement(); train.outLength(); }}输出结果:Train:我是一个交通工具~ 我的长度是200米~子类可以拥有自己的属性与方法
package cn.jontim.blogs.example;/* * Java SE 面向对象之继承 * 交通工具类 */public class Vehicle { //价格 public String price; //制造商 public String manufacturer; //速度 public String velocity; public void outStatement(){ System.out.println("我是一个交通工具~"); } public void outManufacturer(){ System.out.println("我的制造厂商是:"+manufacturer); } //构造方法 public Vehicle(String price){ this.price = price; }}package cn.jontim.blogs.example;/* * Java SE 面向对象之继承 * 汽车类 */public class Car extends Vehicle{ public Car(){ //子类构造方法第一行必须调用父类构造方法 super("1000"); }}子类声明实例对象时默认会调用父类的默认构造方法,如果父类没有默认构造方法时,需要在子类的构造方法中第一行调用父类的构造方法
新闻热点
疑难解答