package mk.bigdata.java.mk.bigdata.java2.mk.bigdata.java2;
public class Person {
String name;
int age ;
public Person(){
}
public Person(String name , int age ){
this.name = name ;
this.age = age ;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void eat(){
System.out.println("吃饭");
}
public void sleep(){
System.out.println("睡觉");
}
}
package mk.bigdata.java.mk.bigdata.java2.mk.bigdata.java2;
public class Student extends Person{
// String name;
// int age;
String major;
public Student(){
}
public Student(String name , int age , String major){
this.name = name ;
this.age = age;
this.major = major;
}
public void sleep(){
System.out.println("睡觉");
}
public void study(){
System.out.println("学习");
}
public void show(){
System.out.println("name:"+name +",age:"+age);
}
}
package mk.bigdata.java.mk.bigdata.java2.mk.bigdata.java2;
/*
*面向对象的特征之二:继承性 why?
*
* 一、继承性的好处:
* ① 减少了代码的冗余,提高了代码的复用性
* ② 便于功能的拓展
* ③ 为之后的多态性的使用,提供了前提
*
* 二、继承性的格式 :class A extends B {}
* A:子类、派生类、subclass
* B:父类、超类、基类、superclass
*
* 2.1体现:一但子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性、方法
*
* 特别的,父类中声明为private 的属性或方法,子类继承父类之后,仍然认为获取了父类中私有的
* 结构。只有因为封装性的影响,使得子类不能直接调用父类的结构而已。
*
* 2.2 子类继承父类之后,还可以定义声明自己特有的属性或方法:实现功能的拓展。
*
* 三 、 Java中关于继承的一些规定:
* 1.一个类可以被多个子类继承。
* 2.Java中类的单继承性,一个类只能有一个父类
* 3.子父类是相对的概念。
* 4.子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类
* 5.子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法
*
* */
public class ExtendsTest {
public static void main(String[] args) {
Person p1 = new Person();
p1.age =1;
p1.eat();
Student s1 = new Student();
s1.eat();
s1.sleep();
s1.name = "wangsicong";
}
}
package mk.bigdata.java.mk.bigdata.java2.mk.bigdata.java2;public class Person { String name; int age ; public Person(){ } public Person(String name , int age ){ this....