面向对象.2

1.类的继承

将一些类中共同共有的属性特点总结出来创建一个新的类,作为父类(具有最基本的属性),令其他略有不同的类(子类)继承,继承父类使用”extends"关键字进行继承。

public class Teacher extends Person{
int number;

public static void main(String[] args) {
Teacher t=new Teacher();
t.age=18;
t.name="阿P";
t.number=238064;
t.speak();
System.out.println("编号"+t.number);

}
}
public class Person {
int age;
String name;

void speak(){
System.out.println("我"+age+"岁了"+"我的名字是"+name);
}
}

其中person作为父类,teacher作为子类,teacher继承了person中的age,name,
所以在teacher类中创造的对象t可以有age,name的属性使用。
person作为父类,超类,基类(最基础的类);teacher作为子类,派生类。

1.1类的继承的意义:
提高代码的复用性
让类与类之间建立联系;从而拥有多态的特性;

1.2 JAVA的特点:
支持单继承,并不支持多继承;
多继承会出现错误,重名,覆盖代码,指代不明;导致代码会出现无法使用的问题;
例如下面的状态,如果person与person1中出现同名方法会导致混乱冲突。
子类无法分辨使用什么方法。
public class Teacher extends Person enxtends person1{

1.3 JAVA支持多层继承:
指的是父类可以继承另一个父类,形成一个继承的关系。就像是一个泡泡中包裹另一个泡泡,不断包裹下去....
懒得画图表达了(╯°□°)╯︵ ┻━┻总之你明白就是一层层包下去像滚元宵就行!
使用多层继承要了解最基本的部分,以及最子类.....嘛,从基础开始打准没错(大概吧)
不可以为了简化代码而滥用继承。(该打的还是dei打啦,你也没办法躲开的,偷懒是不可能的了ᓚᘏᗢ)
必须是类与类之间的继承,毕竟extends可以四舍五入约等于is a....就当是遵循英语语法了。

2:super关键字
子类父类之间的变量同名,会出现子类的变量,这时候使用this.再引用本类变量,用super引用父类变量。
public class Person {//此处是父类
int age;
String name;
int workTime=2;//重名变量(父类)
void speak(){
System.out.println("我"+age+"岁了"+"我的名字是"+name);
}
}
public class Teacher extends Person{//此处子类继承父类
int number;
int workTime=1;//重名变量(子类)
    void show(){
System.out.println("这是子类的数字"+this.workTime +" 这是父类的数字"+ super.workTime);
}
public static void main(String[] args) {
Teacher t=new Teacher();
t.age=18;
t.name="阿P";
t.number=238064;
t.speak();
t.show();
System.out.println("编号"+t.number);

}
}
结果输出:

 

2.重写

虽然说子类继承了父类的功能,但是里面方法却不尽相同,此时没有必要去定义一个新的功能,只需要进行重写即可。

void speak(){//父类中
System.out.println("我"+age+"岁了"+"我的名字是"+name);
}
void speak() {//子类中
System.out.println("我"+age+"岁了"+"我的名字是"+name);
System.out.println("我很高兴认识你。");
}

1,子类要保证方法权限覆盖父类或者超出。
2,静态的方法只能够重写使用静态方法;
3,重载是同名参数列表,在同一个类之中;重写是要保证子类父类方法名保持一致;
子类初始化,父类也会运行,子类构造方法隐藏了一句super();而且在构造方法的首句。
如果父类中构造方法被赋值,那么子类将不可以通过这种方法使用。只能手动指定。

到此结束啦!分割线----------------------------------------------------



嗯.....这周画画了。也放进来吧。

 

posted @   小石榴单推人  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示