Java—”继承“小知识点
2016-05-01 00:59
417 查看
public class test { public static void main(String[] args) { /*****①*****/ AClass classVar = new BClass(); //classVar.printVal(); 不能调用子类的新增方法 //classVar.b = 4; 不能调用子类的新增成员 classVar.print(); //调用的是子类重写的函数 *** System.out.println("a=" + classVar.a); //调用父类中的a *** /*****②*****/ ((BClass) classVar).printVal(); ((BClass) classVar).print(); System.out.println("a=" + ((BClass) classVar).a); //子类中的a /*****③*****/ AClass var = new AClass(); var.print(); //调用AClass的方法 } } class AClass { int a = 1; void print() { System.out.println("AClass"); } } class BClass extends AClass{ int a = 2; int b = 3; void print() { System.out.println("BClass"); } void printVal() { System.out.println("a=" + a); } }
①中父类声明的变量保存的是子类变量的引用。牢记,当其调用被子类重写的方法时,其调用的是子类的方法;当其调用与子类同名的成员时,其调用的仍是父类中的成员。
另一种抽象类的情况如下,相对上面来讲容易理解一些。
public class test {
public static void main(String[] args) {
/*****①*****/
AClass classVar = new BClass();
//classVar.printVal(); 不能调用子类的新增方法
//classVar.b = 4; 不能调用子类的新增成员
classVar.print(); //调用的是子类实现的函数
System.out.println("a=" + classVar.a); //调用父类中的a
/*****②*****/
((BClass) classVar).printVal();
((BClass) classVar).print();
System.out.println("a=" + ((BClass) classVar).a); //子类中的a
}
}
abstract class AClass {
int a = 1;
abstract void print();
}
class BClass extends AClass{
int a = 2;
int b = 3;
void print() {
System.out.println("BClass");
}
void printVal() {
System.out.println("a=" + a);
}
}
相关文章推荐
- javax.mail发送邮件jsp页面
- Java多线程编程(二)操作状态与常用方法
- eclipse安装和maven的配置(windows)
- JAVA 泛型
- java.io.FileNotFoundException: class path resource [bean/test/User.hbm.xml] cannot be opened because it does not exist
- Java练习题
- Java编译器分析
- Spring JdbcTemplate方法详解
- Java泛型
- (Spring加载xml时)org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'beans'.
- readLine方法的简单练习,回答2016-04-27 的帖子的问题
- Java基础串理
- 学习Spring(九) -- Spring使用AOP
- 对象数组、集合、链表(java基础知识十五)
- springmvc请求url始终404错误
- spring boot 集成springmvc视图技术
- eclipse中的server location灰色如何修改?
- java 建造者模式
- 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串重点空格。 给定一个string stringA和一个string stri
- Java中交集、并集、差集的实现