- 继承性
面向对象的特征之二:继承性
一、继承性的好处:
①减少了代码的冗余
②便于功能的扩展
③为之后的多态性的使用,提供了前提
二、继承性的格式:class A extends B{ }
A:子类、派生类、subclass
B:父类、超类、基类、superclass
2.1体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性、方法。
☆注意:父类中声明为private的属性和方法,子类继承父类以后,仍然认为获取了父类中的私有结构。
只是因为封装性的影响,使得子类不能直接调用父类的结构而已。
2.2子类继承父类后,还可以声明自己特有的属性或方法:实现功能的拓展。
子类和父类的关系,不同于子集和集合的关系。
三、Java中关于继承性的规定:
1、一个类可以被多个子类继承。
2、Java中类的单继承性:一个类只能有一个父类。
3、子父类是相对的概率。
4、子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类。
5、子类继承父类后,就获取了直接父类和所有间接父类中声明的属性和方法。
四、1:如果我们没有显示的声明一个类的父类,则此类继承于java.lang.Object类。
2:所有的java类(除java.lang.Object类之外)都直接或间接继承于java.lang.Object类。
3:意味着,所有java类都具有java.lang.Object类中声明的功能。
pperson pp1 = new pperson();
// pp1.age = 1; //声明为private后不能直接调用
pp1.eat();
System.out.println("****************************");
Student s1 = new Student();
// s1.sleep(); //父类中把sleep方法声明为了private,不能直接调用了。
s1.eat();//父类中eat方法调用了sleep方法,所以显示了“吃饭”和"睡觉"
s1.name = "Tom";
s1.showAge();//父类把age声明为private后,声明了showAge方法查看age。子类可以调用showAge方法,输出结果为0,说明堆中的对象有
//age这个属性,即私有的属性和方法子类也都继承了。
//------------------------ 类 --------------------------------------
class pperson{
String name;
private int age;
pperson(){
}
public pperson(String name,int age){
this.age = age;
this.name = name;
}
public void eat(){
System.out.println("人吃饭");
this.sleep();
}
private void sleep(){
System.out.println("睡觉");
}
public void showAge(){
System.out.println(age);
}
}
class Student extends pperson{
// String name;
// int age;
String maior;
public Student(){
}
public Student(String name,int age,String maior){
// this.age = age;
this.maior = maior;
this.name = name;
}
// public void eat(){
// System.out.println("人吃饭");
// }
//
// public void sleep(){
// System.out.println("睡觉");
// }
public void study(){
System.out.println("学习");
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)