extends && implements
final声明的类不能被继承
方法的重写(@Override): 两同两小一大原则:
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型(java里无论怎样都对)
子类抛出异常小于等于父类方法抛出异常(不能抛出新的异常或比父类范围宽泛的异常)
子类访问权限大于等于父类方法访问权限
不能重写final声明方法,
重写static方法只能是static的
继承中方法的重写 1 package test; public class ExtendTest { static class A{
public A() {
System.out.println("A 被创建!");
}
public void t(){
System.out.println("输出 A ");
}
}
static class B extends A{
public B() {
System.out.println("B 被创建!");
}
@Override
public void t() {
System.out.println("输出 B");
}
public void k() {
System.out.println(" 方法 K");
}
} public static void main(String[] args) {
/**
* 1.
*/
A a1 = new A();
B b1 = new B();
a1.t();
b1.t(); // result: A 被创建!
// A 被创建!
// B 被创建!
// 输出 A
// 输出 B /**
* 2.
*/
A a2 = new A();
A b2 = new B();
a2.t();
b2.t(); // result: A 被创建!
// A 被创建!
// B 被创建!
// 输出 A
// 输出 B // /**
// * 3.
// */
//
// A a3 = new A();
// A b3 = new B();
// b3.k(); // result: 编译错误 }
继承类加载顺序 1 import java.util.ArrayList;
import java.util.List;
import javax.swing.plaf.synth.SynthScrollBarUI;
public class Dome {
static class a{
static { System.out.println(" static a");}
{System.out.println(" class a");}
public a() {System.out.println(" construct a ");}
public void t() {};
}
static class b extends a{
static { System.out.println(" static b");}
{System.out.println(" class b");}
public b() {System.out.println("construct b");}
public b(int i){this()}
public void t() {
System.out.println(super.getClass().getName());
}
} public static void main(String[] args) {
new b(); }
}
实现接口中的方法 1 package test; import test.ExtendTest.A; public class ImplementTest {
static interface A {
public void t();
} static class B implements A {
public B() {
System.out.println("B 被创建!");
} @Override
public void t() {
System.out.println("输出 B");
} public void k() {
System.out.println(" 方法 K");
}
} public static void main(String[] args) { A b = new B();
// 1. B 被创建! b.t();
// 2. 输出 B // b.k();
// 3. 编译错误
} }
extends && implements的更多相关文章
- 【Dart学习】-- Dart之extends && implements && with的用法与区别
一,概述 继承(关键字 extends) 混入 mixins (关键字 with) 接口实现(关键字 implements) 这三种关系可以同时存在,但是有前后顺序: extends -> m ...
- JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac
记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...
- java中的内部类总结
内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动) 显然, ...
- 周末惊魂:因struts2 016 017 019漏洞被入侵,修复。
入侵(暴风雨前的宁静) 下午阳光甚好,想趁着安静的周末静下心来写写代码.刚过一个小时,3点左右,客服MM找我,告知客户都在说平台登录不了(我们有专门的客户qq群).看了下数据库连接数,正常.登录阿里云 ...
- 大话JS面向对象之开篇万物皆对象------(ATM取款机引发的深思)
一,总体概要 OO(面向对象)概念的提出是软件开发工程发展的一次革命,多年来我们借助它使得很多大型应用程序得以顺利实现.如果您还没有掌握并使用OO进行程序设计和开发,那么您无疑还停留在软件开发的石器时 ...
- 第一个JAVA应用
1.1创建源文件 1.1.1Java源文件结构 Java应用由一个或多个扩展名为“.Java”的文件构成,这些文件被成为源文件.从编译角度,则被称为编译单元(Compilation Unit). 如果 ...
- Java开发面试总结
Java开发面试总结.. ----------------------- java 基础知识点这一块: 1.面向对象的三大特征.(继承,封装,多态) 1.1 在什么样的场合下面会使用到继承 1.2 什 ...
- C#与Java的比较
C#与Java的比较 写完后得知维基百科里有更加全面得多的比较: http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java NET(C#) ...
- java嵌套类
java有四种嵌套类: 静态内部类,成员内部类,局部内部类,匿名内部类 1)静态内部类: (1)类的申明加上staitc关键字.一般用public修饰 (2)只能访问外部类的静态变量和静态方法.不能访 ...
随机推荐
- hadoop格式化出错,提示IO异常
配置好hadoop之后,在进行格式化的时候出现异常,原因是由于在core-site.xml 配置文件中写的路径格式不对. 不需要加 file:/ 或者 file:// 直接写绝对路径就行. <c ...
- java基础之switch
switch 语句由一个控制表达式和多个case标签组成. switch 控制表达式支持的类型有byte.short.char.int.enum(Java 5).String(Java 7). swi ...
- HDU-2159 FATE,01背包变形
FATE 这道题和完全背包十分类似,只不过加上了忍耐度这个条件限制,所以很正常的想到用三维数组来模拟.但背包问题优化只有一层循环,这里当然也可以把种类这一层省略.d[i][j]表示杀i只怪耗费忍耐度为 ...
- windows 2008、2012防火墙添加入站规则教程(端口例外)
windows2008.2012的设置方法基本一样,以下是以windows2008为例做添加80端口的步骤. 1.依次点“控制面板”→“系统和安全”→“windows防火墙”→“高级设置”,打开“高级 ...
- 以太坊和IPFS如何存储数据
如何将JSON文件存储在IPFS上,并使用Oraclize访问智能合约中的数据呢? 以太坊是一个成熟的区块链,使开发人员能够创建智能合约,在区块链上执行的程序可以由交易触发.人们经常将区块链称为数据库 ...
- NOIP2014D2T2寻找道路(Spfa)
洛谷传送门 这道题可以把边都反着存一遍,从终点开始深搜,然后把到不了的点 和它们所指向的点都去掉. 最后在剩余的点里跑一遍spfa就可以了. ——代码 #include <cstdio> ...
- HH的项链(codevs 2307)
题目描述 Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此,他的 ...
- php装饰者模式
php装饰者模式 装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. 示例: A.B.C编辑同一篇文章. class ...
- navicat 无法连接到腾讯云Mysql
远程连接进入服务器 远程连接进入服务器之后,输入命令mysql -u root -p 之后输入mysql密码,进入mysql 命令环境 设置开启远程登录 GRANT ALL PRIVILEGES ON ...
- sublime text 3注册码
—– BEGIN LICENSE —– Michael Barnes Single User License EA7E-821385 8A353C41 872A0D5C DF9B2950 AFF6F6 ...