11.面向对象-继承
11.1 知识点
Java中继承和C#中的相同点
- 类与类之间只能单继承
- 万物之父都是Object
- 遵循里氏替换原则(可以父类装子类对象)
Java中继承的写法
关键字:extends
public class Lesson11_Father {}
public class Lesson11_Son extends Lesson11_Father {}
万物之父Object中的关键方法
- getClass(): 类似C#中的getType()
Lesson11_Father father = new Lesson11_Father(); System.out.println(father.getClass()); // class Lesson11_Father
- toString(): 将对象以字符串形式返回
- equals(): 比较两个对象的内部内容,而==是判断引用地址是否相等
父子类的上下转换(里氏替换原则)
- 子类自动向上转换
Lesson11_Father father2 = new Lesson11_Son();
- 父类强制向下转换
Lesson11_Son son = (Lesson11_Son) father2;
instanceof关键字
用于判断对象类型,类似C#中的is关键字
if (father2 instanceof Lesson11_Father) {
System.out.println("是Father类");
}
if (father2 instanceof Lesson11_Son) {
Lesson11_Son s2 = (Lesson11_Son) father2;
System.out.println("是Son类");
}
final关键字
类似C#中的密封关键字
- 让变量无法被修改(常量)
- 让函数无法被重写
- 让类无法被继承
总结
Java中继承使用和C#基本一致,只是有一些关键字和小规则不同而已。
11.2 知识点代码
Lesson11_Father
public class Lesson11_Father
{
@Override
public boolean equals(Object obj)
{
return super.equals(obj);
}
public void Eat()
{
}
}
Lesson11_Son
public class Lesson11_Son extends Lesson11_Father
{
@Override
public void Eat() {
super.Eat();
}
}
Lesson11_面向对象_继承
public class Lesson11_面向对象_继承
{
public static void main(String[] args)
{
//知识点1:Java中继承和C#中的相同点
//1.类与类之间只能单继承
//2.万物之父都是Object
//3.遵循里氏替换原则(可以父类装子类对象)
//知识点2:Java中 继承的写法
//关键字:extends
//知识点3:万物之父Object中的关键方法
//1.getClass():类似C#中的getType()
Lesson11_Father father = new Lesson11_Father();
System.out.println(father.getClass());//class Lesson11_Father
//2.toString():将对象以字符串形式返回
//3.equals():比较两个对象的内部内容,而==是判断引用地址是否相等
//知识点4: 父子类的上下转换(里氏替换原则)
//1.子类自动向上转换
Lesson11_Father father2 = new Lesson11_Son();
//2.父类强制向下转换
Lesson11_Son son = (Lesson11_Son) father2;
//知识点5:instanceof关键字
//用于判断对象类型,类似C#中的is关键字
if (father2 instanceof Lesson11_Father)
{
System.out.println("是Father类");
}
if (father2 instanceof Lesson11_Son)
{
Lesson11_Son s2 = (Lesson11_Son) father2;
System.out.println("是Son类");
}
//知识点6:final关键字
//类似C#中的密封关键字
//让变量无法被修改(常量)
//让函数无法被重写
//让类无法被继承
//总结
//Java中继承使用和C#基本一致
//只是有一些关键字和小规则不同而已
}
}
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com