标签:div 自动 jpg extend 企鹅 intro 实例 show 调用
继承的概念
继承就是自雷继承父类的特征和行为,使得子类对象具有父类实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
生活中的继承:
兔子和羊属于食草动物类,狮子和豹属于食肉动物类。
食草动物和食肉动物属于动物类。
所欲继承需要服务的关系是:父类更通用,子类更具体。
继承的格式:
class 父类{}
class 子类 extends 父类 {}
为什么需要继承
企鹅:属性(姓名,id),方法(吃,睡,自我介绍)
老鼠:属性(姓名,id),方法(吃,睡,自我介绍)
企鹅类:
public class Penguin { private String name; private int id; public Penguin(String myName, int myid) { name = myName; id = myid; } public void eat(){ System.out.println(name+"正在吃"); } public void sleep(){ System.out.println(name+"正在睡"); } public void introduction() { System.out.println("大家好!我是" + id + "号" + name + "."); } }
老鼠类:
public class Mouse { private String name; private int id; public Mouse(String myName, int myid) { name = myName; id = myid; } public void eat(){ System.out.println(name+"正在吃"); } public void sleep(){ System.out.println(name+"正在睡"); } public void introduction() { System.out.println("大家好!我是" + id + "号" + name + "."); } }
从两个类可以看出,代码重复了,维护性不高。所以要根本性解决问题,就需要继承,将两段代码中相同的部分提取出来组成一个父类:
public class Animal { private String name; private int id; public Animal(String myName, int myid) { name = myName; id = myid; } public void eat(){ System.out.println(name+"正在吃"); } public void sleep(){ System.out.println(name+"正在睡"); } public void introduction() { System.out.println("大家好!我是" + id + "号" + name + "."); } }
企鹅类:
public class Penguin extends Animal { public Penguin(String myName, int myid) { super(myName, myid); } }
老鼠类:
public class Mouse extends Animal { public Mouse(String myName, int myid) { super(myName, myid); } }
继承的特性:
子类拥有父类非private得属性,方法。
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
子类可用自己的方式实现父类的方法。
java的继承是单继承,但是可以通过接口实现多重继承。
提高了类之间的耦合度。
继承关键字。
public class Animal { private String name; private int id; public Animal(String myName, String myid) { //初始化属性值 } public void eat() { //吃东西方法的具体实现 } public void sleep() { //睡觉方法的具体实现 } } public class Penguin extends Animal{ }
implements关键字
使用implements关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口。
public interface A { public void eat(); public void sleep(); } public interface B { public void show(); } public class C implements A,B { }
super与this关键字
super关键字:我们可以通过super关键字来事项对弗雷成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用
final关键字
final关键字声明类可以吧类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写。
构造器:
子类不能继承父类的构造器,但是父类的构造器带有参数的,则必须在子类的构造器中显示的通过super关键字显示的调用父类的构造器并配以适当的参数列表。如果弗雷有无参构造器,则在子类的构造器中用super调用父类构造器不是必须的,如果没有使用super关键字,系统会自动调用父类的无参构造器。
标签:div 自动 jpg extend 企鹅 intro 实例 show 调用
原文地址:http://www.cnblogs.com/lywh/p/6369810.html