0003面向对象的基本特征之二:继承

编程入门 行业动态 更新时间:2024-10-28 11:33:23

继承(一)

0、与C#的异同
在C#中继承是:
在java中继承是 extends
另外java是单向继承,其它基本相同


继承:(1)、延续(2)、扩展1、为什么要有基础?(1)当某个类需要派生出很多子类别时Person:需要派生出Teacher,Student等等子类别那么此时Person中的共有部分就不需要在子类中再次去声明了(2)当多个类出现了共同特征时,可以把共同的部分抽取到父类中目的:代码的复用和扩展2、如何实现继承?【修饰符】 class 子类 extends 父类()子类:subclas,也称为派生类父类:superclass,也称为超类,基类3、继承的特点:(1)、子类继承了父类,从事务的特征来说,子类会继承父类的所有特征(属性和方法)但是从代码的操作角度来说,父类中等待私有属性、方法在子类中是不能直接使用的(2)子类继承父类时,构造器是不能被继承的(3)子类继承父类时,在子类的构造器中一定要去调用父类的构造器默认情况下,调用的是父类的无参构造如果父类没有无参构造,那么在子类构造器的首行,必须手动调用父类的有参构造;未完待续……

*/

好了贴代码,好好体会吧

package .atguigu.test02;
/** 继承:* (1)、延续* (2)、扩展* 1、为什么要有基础?* (1)当某个类需要派生出很多子类别时* Person:* 需要派生出Teacher,Student等等子类别* 那么此时Person中的共有部分就不需要在子类中再次去声明了* (2)当多个类出现了共同特征时,可以把共同的部分抽取到父类中* * 目的:代码的复用和扩展* * 2、如何实现继承?* 【修饰符】 class 子类  extends 父类(* )* * 子类:subclas,也称为派生类* 父类:superclass,也称为超类,基类* * 3、继承的特点:* (1)、子类继承了父类,* 从事务的特征来说,子类会继承父类的所有特征(属性和方法)* 但是从代码的操作角度来说,父类中等待私有属性、方法在子类中是不能直接使用的* (2)子类继承1父类时,构造器是不能被继承的* (3)子类继承父类时,在子类的构造器中一定要去调用父类的构造器* 默认情况下,调用的是父类的无参构造* 如果父类没有无参构造,那么在子类构造器的首行,必须手动调用父类的有参构造;* * 未完待续……* * 
*/
public class TestInherited {public static void main(String[] args) {Teacher t=new Teacher();t.setName("宋老师");t.setAge(27);System.out.println("姓名"+t.getName());System.out.println("年龄"+t.getAge());Student s=new Student();s.setName("张三");s.setAge(19);System.out.println("学生姓名:" + s.getName());System.out.println("学生姓名:" + s.getName());}
}
class Person{private String name;private int age;//构造器public Person(String name,int age){this.name=name;this.age=age;}public Person(){}//get/setpublic 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;}
}
class Teacher extends Person{private double salary;public Teacher(){super(null,0);//猜猜这是啥意思,是调用父类的有参构造吗?}public Teacher(String name, int age, double salary) {super(name, age);//调用父类的有参构造,必须在子类构造器的首行写这个this.salary = salary;}public void test(){//System.out.println("name = " + name);//父类私有的属性在子类中不能直接使用}
}
class Student extends Person{//成员变量private int score;//有参构造器和无参构造器public Student(String name,int age,int score){super(name,age);//调用父类的有参构造,必须在子类构造器的首行this.score=score;}public Student(){}
}

继承(二)

/*

3、继承的特点:(1)子类继承了父类,从事物的特征来说,子类会继承父类所有的特征(属性和方法)。但是从代码操作角度来说,父类中私有的属性、方法在子类中是不能直接使用的(2)子类继承父类时,构造器是不能被继承的(3)子类继承父类时,在子类的构造器中一定要去调用父类的构造器默认情况下,调用的是父类的无参构造;如果父类没有无参构造,那么在子类的构造器的首行,必须手动调用父类的有参构造;(4)Java只支持单继承,即一个Java类只能有一个直接父类只能有一个亲生父亲(5)Java支持多层继承,即父类还可以有父类代代相传(6)一个Java类可以同时有很多个子类,而且子类还可以有子类一个父亲可以有多个孩子,子孙满堂(7)子类可以扩展父类没有的属性、方法
*/
最好的例子:
package .atguigu.test02;
/** 3、继承的特点:* (1)子类继承了父类,* 从事物的特征来说,子类会继承父类所有的特征(属性和方法)。* 但是从代码操作角度来说,父类中私有的属性、方法在子类中是不能直接使用的* (2)子类继承父类时,构造器是不能被继承的* (3)子类继承父类时,在子类的构造器中一定要去调用父类的构造器* 默认情况下,调用的是父类的无参构造;* 如果父类没有无参构造,那么在子类的构造器的首行,必须手动调用父类的有参构造;* (4)Java只支持单继承,即一个Java类只能有一个直接父类* 		只能有一个亲生父亲* (5)Java支持多层继承,即父类还可以有父类* 		代代相传* (6)一个Java类可以同时有很多个子类,而且子类还可以有子类* 		一个父亲可以有多个孩子,子孙满堂* (7)子类可以扩展父类没有的属性、方法*/
public class TestInherited2 {}
class Things{}
class Graphic extends Things{}
class Circle extends Graphic{}
class Rectangle extends Graphic{}

更多推荐

之二,面向对象,基本特征

本文发布于:2023-05-30 09:19:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/365350.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:之二   面向对象   基本特征

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!